在 MVVM 模式中,模型和视图啥时候直接相互通信?
Posted
技术标签:
【中文标题】在 MVVM 模式中,模型和视图啥时候直接相互通信?【英文标题】:In the MVVM pattern, when do the model and the view communicate with each other directly?在 MVVM 模式中,模型和视图什么时候直接相互通信? 【发布时间】:2012-03-23 17:42:28 【问题描述】:本次会议的简报(http://channel9.msdn.com/Events/MIX/MIX10/EX14)显示如下图: 看起来有点奇怪。模型和视图什么时候直接相互通信?
PS:我没有看全场,我只看了ppt,如果他在视频中解释,请多多包涵。
【问题讨论】:
【参考方案1】:在某些情况下,模型对象实现 INotifyPropertyChanged。比如EF实体做的,或者在WCF中,客户端生成的代理也会自动实现INPC。在其他情况下,如果您自己创建数据对象,让它们实现 INPC 也可能有意义。
如果您想避免复制每个数据对象的每个属性并使它们可观察,这很有用。为此,MVVM Light V4 现在具有 ObservableObject 类,它是 INPC 的轻量级实现。 ViewModelBase 继承了 ObservableObject 并添加了一些特定于 ViewModel 的功能。
请注意,当然,您的里程可能会有所不同 (YMMV),并且在某些情况下,让数据对象实现 INPC 是没有意义的。像往常一样,务实并评估每一种情况。但是,在数据对象确实实现 INPC 的情况下,您可以直接将数据绑定到数据对象的属性,这就是该箭头的含义。
干杯, 洛朗
【讨论】:
以上是关于在 MVVM 模式中,模型和视图啥时候直接相互通信?的主要内容,如果未能解决你的问题,请参考以下文章
MVVM模式下,ViewModel和View,Model有啥区别