我正在项目中使用MVVM模式。这是伪代码。
class ViewModelA {
propertyA;
methodA(); // updates propertyA
}
class ViewModelB {
methodB() {
// update properties of ViewModelB
// Needs to update propertyA of ViewModelA
}
}
我有两个视图模型ViewModelA和ViewModelB。 ViewModelB的MethodB需要更新ViewModelA的propertyA。
我可以在ViewModelB内保留ViewModelA实例的引用,并调用methodA来更新ViewModelA的propertyA。在MVVM模式中将一个视图模型的引用保留在另一个视图模型中是一种好习惯吗?另外,想了解其他视图模型可以更新其他视图模型属性的方式。
您可以查看具有消息传递机制的GalaSoft MVVMLight Toolkit。它可以用于在视图模型之间通信:http://dotnetpattern.com/mvvm-light-messenger,https://www.nuget.org/packages/MvvmLight/