【发布时间】:2017-07-10 12:43:52
【问题描述】:
假设我在视图 A 中有一个按钮,它应该触发视图 B 的功能。这最好如何完成?我可以使用 Mediator,但我更愿意避免使用它,并且主要将它用于在绝对没有其他方法的视图模型之间进行通信。
这是我的一个想法:
所以基本上我们有一个拦截器类来处理多个视图之间的通信。该视图不知道其他视图。拦截器充当它们之间的信使。
就 MVVM 的思考而言,这可以吗?
【问题讨论】:
-
你的拦截器和中介或信使有什么区别?
-
@mm8 我的中介包含静态类和属性,而这个没有。拦截器只负责某个特性,而中介器是不同特性的类之间通信的全局对象。
-
静态类和属性?这些做什么?
-
你在描述中介者模式。
-
如果您的 ViewModel 彼此相关,例如父/子,那么一个 ViewModel 引用另一个 ViewModel 是完全可以接受的。然后他们可以直接调用功能。如果它们断开连接,您将需要使用某种消息传递系统,正如其他人所描述的那样。