跨视图/表单的事件处理(MVP-VM框架)



架构、事件流-

类型1

  1. MainForm -创建演示者
  2. 演示者创建并显示视图。

类型2 -栅格

  1. MainForm -创建一个grid-presenter
  2. 网格中的每一行都链接到一个详细信息表单- DetailPresenter
  3. 双击时,网格展示器创建一个详细展示器,然后详细展示器创建并显示视图。

问题-视图需要刷新或者演示者需要重新加载数据。例如,有两个表单A和b。当它们同时打开时,A中的任何变化都应该触发b中的刷新。还有一种情况是Type 1表单应该刷新网格。

我想避免主表单保留每个演示者的引用并触发必要事件的解决方案。到目前为止,我只能想到静态事件。我想解决跨视图消息传递的更高层次的问题。有更好的解决方案吗?

在答案中加入注释:

这里需要的是事件聚合器模式。

正如您所建议的,简单的信使实现应该工作得很好,如果您想推出自己的,您可以随时查看Caliburn。Mvvm Light Messenger在Mvvm Light Toolkit中的微实现

最新更新