在MVVM模式中,模型和视图何时直接相互通信?

Cui*_*崔鹏飞 1 design-patterns model view mvvm

本次会议的强项要点(http://channel9.msdn.com/Events/MIX/MIX10/EX14)显示如下图: 在此输入图像描述 看起来很奇怪.模型和视图何时直接相互通信?

PS:我没看整个节目,我只看了ppt,所以如果他在视频中解释它,请耐心等待.

LBu*_*ion 7

在某些情况下,Model对象实现INotifyPropertyChanged.例如,EF实体,或在WCF中,在客户端上生成的代理也自动实现INPC.在其他情况下,如果您自己创建数据对象,那么让它们实现INPC也是有意义的.

如果您希望避免必须复制每个数据对象的每个属性,并使它们可观察,这将非常有用.为此,MVVM Light V4现在具有ObservableObject类,它是INPC的轻量级实现.ViewModelBase继承了ObservableObject,并添加了一些特定于ViewModels的功能.

请注意,当然您的里程可能会有所不同(YMMV),在某些情况下,让数据对象实现INPC是没有意义的.像往常一样,务实并评估每一种情况.但是,在数据对象实现INPC的情况下,您可以直接将数据绑定到数据对象的属性,这就是此箭头的含义.

干杯,洛朗