Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVVM-我应该在Model或ViewModel中维护数据?_C#_.net_Wpf_Mvvm_Uwp - Fatal编程技术网

C# MVVM-我应该在Model或ViewModel中维护数据?

C# MVVM-我应该在Model或ViewModel中维护数据?,c#,.net,wpf,mvvm,uwp,C#,.net,Wpf,Mvvm,Uwp,我正在用WPF做一个C应用程序。我正试图正确地遵循MVVM模式,因为特别是使用C/WPF非常有用 正如MVVM模型所说,我的应用程序分为三大部分: 视图,在XAML->MainWindow.XAML中 ViewModel,在C->MainWindow.xaml.cs中 模型,在C->my静态类Register.cs中 这是一个很强的模式,而且效果很好 我的软件管理自定义对象列表:我按下视图上的一个按钮,ViewModel在模型上启动一个从数据库检索数据列表的方法,并在WPF中的ListView的

我正在用WPF做一个C应用程序。我正试图正确地遵循MVVM模式,因为特别是使用C/WPF非常有用

正如MVVM模型所说,我的应用程序分为三大部分:

视图,在XAML->MainWindow.XAML中 ViewModel,在C->MainWindow.xaml.cs中 模型,在C->my静态类Register.cs中 这是一个很强的模式,而且效果很好

我的软件管理自定义对象列表:我按下视图上的一个按钮,ViewModel在模型上启动一个从数据库检索数据列表的方法,并在WPF中的ListView的视图端绑定它们

一切正常。但是,即使在阅读了很多关于MVVC模式的内容之后,我仍然不明白一件事:我应该在哪里记住这些列表

现在,我在模型上声明这些列表,只需通过ViewModel调用它们就可以检索它们,但我不知道这是否是正确的方法

我需要维护这些列表和许多其他字符串,如当前用户名等,直到我关闭软件或需要保存它们

所有数据都来自INI或DBs,我不知道应该在哪里临时存储它们,如果在ViewModel上,为什么?因为它是与它们交互的视图还是模型中的视图?将数据保留在您获取数据的位置附近不是更明智吗

另外,在将来,我想在UWP或Mono中移植软件,所以我应该简化我自己的跳跃。另外,在这种情况下,我想我必须完成我在ViewModel上所做的所有工作


我应该在哪里记忆软件使用的所有临时数据?在M中还是在VM中?

我认为应该把东西放在哪里是这样的:回答问题,它是业务数据问题还是UI表示问题。第一个在模型中,第二个在视图模型中。

更重要的是“何时”从VM写入M。根据业务规则以及是否有[Save]/[Cancel]按钮,各种模型都是可能的。那么,您是说当前用户名会出现在视图模型中吗?