应该允许进入模型的东西进入视图模型,即公共属性,IDataErroInfo和INotifyPropertyChanged,那么实际应该进入模型的是什么?
答案 0 :(得分:31)
Business Data + Business Logic + Business Rules
Application UI
Wrapper Over Model which is ealily readable/bindable by View
using minimum Effort/Code.
1) IDataErrorInfo
- 应该进入ViewModel
2) INotifyPropertyChanged
- 应该进入ViewModel
和Model
(如果需要,不推荐用于型号)
3) Public Properties
- 当然是Model
应该拥有它们。
答案 1 :(得分:3)
假设您要为数据加载编写批处理。批处理过程只会访问模型,因此处理与UI分离的业务规则所需的一切都属于模型。 ViewModel可能有一些业务规则,但仅限于UI。
在我正在构建的应用程序中,Views和ViewModel在一个程序集中,而Model在另一个程序集中。该模型没有对View的程序集的引用,只有Model程序集引用了底层数据存储(Linq和Web服务调用的组合)。