【问题标题】:Passing messages between viewmodels在视图模型之间传递消息
【发布时间】:2018-02-23 12:14:09
【问题描述】:

我有一个执行操作的视图模型,当执行此操作时,必须禁用其他视图模型的 UI。我的问题是谁应该为禁用负责?我应该从第一个视图模型调用第二个类似禁用方法的方法。还是应该第一个 viewmodel 只触发一个事件,执行该操作,然后第二个 viewmodel 将处理该事件并禁用 ui?

【问题讨论】:

  • 视图模型不应相互依赖。大多数时候,禁用 GUI 中的功能是必要的,因为在数据模型的当前状态下不允许使用用例。在这种情况下,数据模型本身必须提供此信息。因此,第一个视图模型会更改数据模型,这会触发导致第二个视图模型更新的事件。

标签: c# mvvm viewmodel


【解决方案1】:

如果这是在 Decoupled 视图模态中,那么请查看 Messaging 或某种适用于解耦视图模态的 事件聚合,否则使用引用或事件当您创建视图模式时。这完全取决于你

如果您正在使用 MVVM 灯 向需要它的人发送消息。如果您使用的是Prism,请使用事件聚合。如果您在两个视图模式上都有创建,为什么不只是一个动作甚至是一个参考

谁应该这样做,为什么?这完全取决于你有多少强迫症,谁对功能有主要关注,什么是最可维护和最合乎逻辑的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 2021-05-26
    相关资源
    最近更新 更多