c# - 使用 MVVM 模式访问模型的最佳实践是什么

标签 c# design-patterns architecture mvvm

我有一个数据库,它通过我的模型(自己的线程)与网络服务通信并公开数据对象。我的 UI 应用程序由不同的 View 和 View 模型以及自定义控件组成。我正在使用 ServiceProvider (IServiceProvider) 访问模型并将事件路由到 UI 线程。 ViewModel 之间的通信由 Messenger 处理。

这条路要走吗?

我也想知道构造数据对象的最佳方式是什么

目前我有具有层次结构但不支持 INotifyProperty 的数据对象,尽 pipe 列表是 ObservableCollection 类型。我无法对属性实现 notifypropertychange。

我想知道让它们对 MVVM 友好的最佳方法。实现部分类并添加所有必要的属性或命令或包装所有 DataObjects 并保持模型列表和 MVVM 列表同步。

所有的想法和想法都会受到赞赏。

最佳答案

严格实现 MVVM 意味着您应该创建 ViewModel 类,以公开将使用 View 的所有数据对象(您的模型)—— View 不应直接访问模型。

在此之后,您将完全控制您的 ViewModel,并且您将能够实现 INotifyPropertyChange 事件并在每次更改通知或特定操作时将 ViewModel 与模型同步。

关于c# - 使用 MVVM 模式访问模型的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2326421/

相关文章:

java - 为什么不使用静态变量来为子类共享对象?

c++ - 组合和继承设计问题

multithreading - 电信软件硬多线程问题的设计模式

java - 将大规模、结构不良的 Java 系统迁移到 Spring 应用程序框架

c# - C sharp系统IO保存文本文件问题

c# - Silverlight 的 ANSI 编码实现

c# - 当绑定(bind)对象的属性更改时,WPF Caliburn Micro CanExecute

c# - 使图像的 ObservableCollection 很好地显示在屏幕上

c# - 为什么抽象类要实现抽象基类的抽象方法?

android - 如何使用 Realm "live"对象并保持数据库层与其他层(业务、UI 等)解耦?