WPF和MVVM模型以及viewModel分离

时间:2016-03-29 14:50:25

标签: c# wpf mvvm

我是WPF和MVVM的新手,我对如何将模型和viewModel用于我需要的东西感到有些困惑。 该应用程序将拥有一个全球性的世界"对象,它将包含各种自定义类的对象集合,这些对象将由侦听端口和套接字的后台线程连续创建,销毁和更新,这是应用程序逻辑的主体。这个对象集合需要在整个应用程序执行期间保持静态,无论页面导航如何,并且可以从自定义类访问并可从UI进行编辑(将有一个页面用于概述" world"状态,以及详细视图的页面,对象和配置的编辑。)

从我所读过的内容中,我收集的数据应由模型维护,ViewModel应该访问它以为View做好准备。这是否意味着,对于每个"世界"我创建并需要用户查看或编辑的自定义类,应该有一个ViewModel来匹配吗?

查看代码示例和教程,我看到viewModels对象链接到XAML代码中的视图,并在加载所述视图页面时进行实例化(并在退出时销毁)。如何将viewModel对象链接到特定的现有Model对象,从该对象获取所有数据以及UI输入数据必须保存到哪个?

总结:

  1. 在应用程序启动时创建世界对象集合(app或 mainWindow范围)。例如,创建类Task的对象。
  2. 启动后台进程,访问任务集合并根据找到的内容执行操作。 (他们也可以更改数据,因此必须通知模型视图以显示更改)。
  3. 启动GUI导航,动态创建控件,以查看和编辑世界对象中的数据。例如,显示控件以管理多个任务。
  4. 如何将Model对象(例如特定任务)与viewModel链接?在XAML上?在viewModel后面的代码中,每个Model实例化都有一些唯一的标识符?在代码隐藏中添加控件时,将模型对象实例传递给viewModel? 模型通知de viewModel和反之的更改的最佳方式是什么?

    我很感激任何指导或对代码示例的引用,以解决这种情况。

    提前致谢

1 个答案:

答案 0 :(得分:1)

拥有每个视图模型可以访问模型对象的服务 - 请参阅TimerQueue