本次 session 的简报(http://channel9.msdn.com/Events/MIX/MIX10/EX14)显示了这样的图表:
看起来有点奇怪。模型和 View 何时直接相互通信?
PS:我没有看全场,我只看了ppt,如果他在视频中解释,请多多包涵。
最佳答案
在某些情况下,模型对象实现 INotifyPropertyChanged。比如EF实体做的,或者在WCF中,客户端生成的代理也会自动实现INPC。在其他情况下,如果您自己创建数据对象,让它们实现 INPC 也可能有意义。
如果您想避免复制每个数据对象的每个属性并使它们可观察,这将很有用。为此,MVVM Light V4 现在具有 ObservableObject 类,它是 INPC 的轻量级实现。 ViewModelBase 继承了 ObservableObject 并添加了一些特定于 ViewModel 的功能。
请注意,当然您的里程可能会有所不同(YMMV),并且在某些情况下,让数据对象实现 INPC 是没有意义的。像往常一样,务实并评估每一种情况。但是,在数据对象确实实现 INPC 的情况下,您可以将数据直接绑定(bind)到数据对象的属性,这就是该箭头的含义。
干杯,
洛朗
关于design-patterns - 在 MVVM 模式中,模型和 View 什么时候直接相互通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9843995/