假设我有两个ViewModel,并且两个都使用相同的Model类。如果一个ViewModel更改了Model类中的某个属性值,我想将其通知给第二个ViewModel,这样我就可以在Views中显示更改而不再刷新它。
Model<-------->ViewModel 1
^
|------------>ViewModel 2
请帮助我,如何使用MVVM模式实现此(Model&lt; ---&gt; ViewModel(s)双向绑定)?如果还有其他更可行的方法,那就非常感激了。
答案 0 :(得分:1)
我认为你误解了Model<--->ViewModel(s) Two-Way binding
,实际上绑定源至少应该是Model的一个实例,DataContext
应该是包含Model的这个实例的ViewModel,我们不能直接将模型绑定到绑定目标。所以你的设计模式不太合适。
我认为您需要的就像在ViewModel1中更改数据时,其他ViewModel可以得到通知并对其做出响应,您可能通过手动刷新它来完成此工作,并且您想要找到另一种方法。
这是一种在MVVM模式中执行此操作的简单方法,您可以使用MVVM Light的Messenger,您可以在SO上引用此问题:Use MVVM Light's Messenger to Pass Values Between View Model。