这是我在WPF中学习MVVM的链接,我有一个问题: - https://www.tutorialspoint.com/mvvm/mvvm_first_application.htm
WPF窗口的DataContext设置为VIEWMODEL对象。 List-DataTemplate的Itemsource从同一个VIEWMODEL对象设置为List。 该模型包含INotifyPropertyChanged的实现。 当我更新视图时,MODEL的INotifyPropertyChanged被触发,即VIEW直接更新MODEL,而我迄今所理解的是VIEW仅通过Bindings和Commands与VIEWMODEL交互,而且从不与MODEL DIRECTLY交互。它始终是ViewModel它与模型交互以获取View的数据。但是在这里,View正在更新Model DIRECTLY。由于我的知识有限,这让我感到困惑。 请指导。
答案 0 :(得分:0)
如果视图模型通过属性公开模型,则视图实际上可以通过此属性直接绑定到模型。这并没有真正违反MVVM模式,并且非常好,特别是如果模型类实现了INotifyPropertyChanged
接口。如果是,您可以说该模型是一种(子)视图模型。
A"真实"诸如域对象或服务之类的模型不应该具有关于WPF的任何知识以及如何将更改通知提交到视图。因此,直接绑定到这些对象很少有意义,但如果你的模型是" WPF意识到"并实现与视图相关的接口,您可以毫无问题地绑定它们。
答案 1 :(得分:0)