【问题标题】:Communicate between View Models in MVVM在 MVVM 中的视图模型之间进行通信
【发布时间】:2020-01-26 18:30:44
【问题描述】:

我在我的项目中使用 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 模式中的另一个视图模型中是一种好习惯吗?另外,想知道视图模型可以更新其他视图模型属性的其他方式。

【问题讨论】:

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

标签: design-patterns mvvm software-design solid-principles


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 2020-01-09
    • 2014-07-10
    • 2010-12-18
    • 2013-08-31
    • 2011-10-12
    • 1970-01-01
    相关资源
    最近更新 更多