【问题标题】:WPF and MVVM model and viewModel separationWPF 和 MVVM 模型和 viewModel 分离
【发布时间】:2016-07-17 05:05:07
【问题描述】:

我是 WPF 和 MVVM 的新手,我对如何使用模型和视图模型来满足我的需要有点困惑。 应用程序将有一个全局“World”对象,它将包含各种自定义类的对象集合,这些对象将由侦听端口和套接字的后台线程持续创建、销毁和更新,这是应用程序逻辑的主体。这个对象集合需要在应用程序的整个执行过程中保持静态,无论页面导航如何,并且可以从自定义类访问并且可以从 UI 编辑(将有一个页面用于概述“世界”状态,以及详细视图、编辑对象和配置的页面)。

根据我的阅读,我收集到这些数据应该由模型维护,并且 ViewModel 应该访问它以为视图做准备。这是否意味着,对于我创建并需要用户查看或编辑的每个“世界”自定义类,都应该有一个 ViewModel 来匹配?

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

总结一下:

  1. 世界对象集合在应用程序启动(应用程序或 主窗口范围)。例如,创建了 Task 类的对象。
  2. 启动后台进程,访问任务集合并根据他们找到的内容执行操作。 (他们也可以更改数据,因此必须通知模型视图以显示更改)。
  3. GUI 导航已启动,并动态创建控件,用于查看和编辑世界对象中的数据。例如,显示控件来管理多个任务。

如何将模型对象(例如特定任务)与 viewModel 链接起来?在 XAML 上?在 viewModel 后面的代码中,每个模型实例都有某种唯一标识符?在代码隐藏中动态添加控件时,将模型对象实例传递给 viewModel? 模型通知 de viewModel 更改的最佳方式是什么,反之亦然?

如果能提供任何指导或参考解决此类情况的代码示例,我将不胜感激。

提前致谢

【问题讨论】:

    标签: c# wpf mvvm


    【解决方案1】:

    拥有一个服务,每个视图模型都可以通过该服务访问您的模型对象 - 请参阅mvvm services

    【讨论】:

      猜你喜欢
      • 2013-12-09
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多