Design patterns MVVM中视图模型之间的通信

Design patterns MVVM中视图模型之间的通信,design-patterns,mvvm,software-design,solid-principles,Design Patterns,Mvvm,Software Design,Solid Principles,我在我的项目中使用MVVM模式。这是伪代码 class ViewModelA { propertyA; methodA(); // updates propertyA } class ViewModelB { methodB() { // update properties of ViewModelB // Needs to update propertyA of ViewModelA } } 我有两个视图模型ViewModelA和

我在我的项目中使用MVVM模式。这是伪代码

class ViewModelA {
     propertyA;
     methodA(); // updates propertyA
}

class ViewModelB {
     methodB() {
     // update properties of ViewModelB
     // Needs to update propertyA of ViewModelA
     }
}
我有两个视图模型ViewModelA和ViewModelB。ViewModelB的方法B需要更新ViewModelA的属性A


我可以在ViewModelB中保留ViewModelA实例的引用,并调用methodA来更新ViewModelA的propertyA。在MVVM模式中,将一个视图模型的引用保存在另一个视图模型中是否是一种好的做法?另外,希望了解视图模型更新其他视图模型属性的其他方法。

您可以查看GalaSoft MVVMLight Toolkit,它具有消息传递机制。它可用于viewmodels之间的通信:,

查看发布/订阅机制,如事件聚合器。大多数情况下,您不希望虚拟机彼此依赖,但有时也可以,但这实际上取决于使用情况