在MVVM中的视图模型之间进行通信

时间:2020-01-26 18:30:44

标签: 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和ViewModelB。 ViewModelB的MethodB需要更新ViewModelA的propertyA。

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

1 个答案:

答案 0 :(得分:1)

您可以看一下具有消息传递机制的GalaSoft MVVMLight Toolkit。它可以用于在视图模型之间进行沟通:http://dotnetpattern.com/mvvm-light-messengerhttps://mallibone.com/post/mvvmlight-messengerhttps://www.nuget.org/packages/MvvmLight/

相关问题