我遇到的几乎每个MVVM示例都有模型和实现ViewModel的INotifyPropertyChanged。
其他来源(关注领域建模的来源)似乎认为模型应该非常简单(与关注点的分离有关吗?)根本没有提到任何东西。不幸的是,这些源不使用MVVM。
我在努力调和这两件事。
-我对编程比较陌生,对设计模式等也是完全陌生的,所以请试着对我轻松一点。
编辑:,让我重新表达我的问题。考虑到上述问题的答案似乎是“有时是一个,有时是另一个”,那么什么时候应该做一个,什么时候应该做另一个。此外,将如何实现每一项?
(在另一篇文章中没有回答。它只是让他们彼此争吵)。
发布于 2015-05-17 04:36:19
模型必须实现INotifyPropertyChanged
来通知视图模型它们已经更改了。如果模型没有实现INotifyPropertyChanged
(或其他等效接口),那么视图模型将使用轮询或其他类似的低效方法来检测模型状态中的变化。
此MSDN页面可能对进一步理解构成MVVM模式的各个组件的角色很有用。
发布于 2017-07-21 18:56:47
我不知道这是否是一个最佳实践,但我已经设置了我的ViewModel,以便它是唯一的活动实体。只有通过从数据库中读取(然后加载到ViewModel),或者在保存到数据库之前(从ViewModel提取,修改只对数据库重要的模型属性,如外键),模型才会直接更改。
如果出于某种原因,您希望能够将多个ViewModels连接到同一个模型,或者需要从ViewModel下更改模型,那么您就有充分的理由在模型上实现INotifyPropertyChanged
。
我是个相对业余的人,所以接受我说的话。但这就是我一直在收集的内容,我认为,实施这种分离可以使我的代码更简洁,更易于理解和调试。因此,对于我自己的项目,如果能够避免,我将尝试避免在我的模型上实现INotifyPropertyChanged
。
https://stackoverflow.com/questions/30283393
复制相似问题