我正在构建和 MVVM 应用程序,其中我的一些模型包含他们正在建模的真实世界对象的状态。状态因外部事件而改变,例如,我的模型通过 TCP/IP 获取有关股票变化的信息,并更新其状态以反映该变化。
现在我希望将更改传播到我的视图,而这样做的方法是让我的 ViewModel 知道更改。我可以想到两种方法来做到这一点。
一,我让Model实现INotifyPropertyChanged,当属性改变时触发事件。但是,由于某种原因,这似乎不受欢迎。
第二,我为模型中可以更改的每个属性实现一个事件,ViewModel 可以显式绑定到的事件。
首选方式是什么?还有其他方法(更好的方法)吗?
编辑:
我现在已经在slugster和here的评论中读到,让模型具有状态不是模型的目的。
然而,在 John Gossman 的原始MVVM 帖子中,我们发现:“模型在 MVC 中定义;它是完全独立于 UI 的数据或业务逻辑,用于存储状态并处理问题域。”