【发布时间】:2010-12-15 18:10:51
【问题描述】:
应该进入模型的东西也被允许进入视图模型,即Public Properties、IDataErroInfo和INotifyPropertyChanged,那么实际上应该进入模型的东西是什么?
【问题讨论】:
应该进入模型的东西也被允许进入视图模型,即Public Properties、IDataErroInfo和INotifyPropertyChanged,那么实际上应该进入模型的东西是什么?
【问题讨论】:
业务数据 + 业务逻辑 + 业务规则
应用界面
Wrapper Over Model,View 使用最少的工作量/代码即可轻松读取/绑定。
IDataErrorInfo - 应该进入 ViewModelINotifyPropertyChanged - 应该进入 ViewModel。必要时也可以进入模型(但不推荐)【讨论】:
INotifyPropertyChanged 是一个 UI 问题。我从不在模型中实现 INPC。模型需要尽可能简洁和独立。例如“银行账户”永远不会负责通知任何数据更改。
假设您要为数据加载编写批处理。批处理只会访问模型,因此处理与 UI 分离的业务规则所需的一切都属于模型。 ViewModel 可能有一些业务规则,但仅限于与 UI 相关的规则。
在我正在构建的应用程序中,视图和视图模型在一个程序集中,而模型在另一个程序集中。模型没有对视图程序集的引用,只有模型程序集对底层数据存储(Linq 和 Web 服务调用的组合)有引用。
【讨论】: