【发布时间】:2019-11-24 12:38:25
【问题描述】:
我有一个具有两个不同视图的 C# 应用程序。每个视图都有自己的 ViewModel。 ViewModel 访问相同的模型。视图需要来自同一模型的不同格式的数据。 ViewModel 处理格式化和验证。
两个 ViewModel 应该能够以某种方式相互通信。例如,如果 ViewModel1 更新了模型中的某些内容,ViewModel2 也应该更新他的视图。 ViewModel 不必相互了解,它们应该只在一方发生更改时同步。
我发现了一些关于中介者模式的旧帖子。这仍然是要走的路吗?我认为观察者模式在这里行不通。我能想到的唯一替代方法是在两个 ViewModel 上创建一个接口,让它们相互交谈。
【问题讨论】:
-
中介者模式在这里是相关的。使用
PrismsEventAggregator在 ViewModel 之间发布和响应状态变化事件。
标签: c# design-patterns observer-pattern mediator