gpt4 book ai didi

mvvm - ViewModel 到 ViewModel 的通信

转载 作者:行者123 更新时间:2023-12-01 01:31:12 27 4
gpt4 key购买 nike

鉴于以下情况:

  • ViewModelA 启动 ViewModelB(当然,通过一个通用 Controller ,它使用 Ioc 和 DI 来解析所需的类型)。
  • ViewModelB 需要在 ViewModelA 中设置一个属性值。

  • 通过构造函数注入(inject)将 ViewModelA 简单地注入(inject) ViewModelB 并直接设置属性是不是很糟糕?

    或者…

    是否应该使用像 Prism 的 EventAggregator 这样的消息系统来处理 ViewModel 之间的所有通信?

    我喜欢注入(inject)方法,因为它很简单,但我的直觉告诉我我错过了一些东西。我呼吁你们的集体智慧来帮助填补我的盲点。

    最佳答案

    如果您需要双向引用,我认为这是一种代码异味。通常你可以 将其中一个引用替换为事件 .

    让 ViewModelB 引发 ViewModelA 订阅的事件。像在 Prism 中找到的那样完整的消息传递系统当然是一种选择,但在您的场景中,听起来像“正常”事件就可以了。

    关于mvvm - ViewModel 到 ViewModel 的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4807101/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com