0

建筑,事件流程 -

类型 1

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

类型 2 - 网格

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

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

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

4

1 回答 1

1

将评论附在答案中:

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

正如您所建议的,简单的 Messenger 实现应该工作得很好,如果您想推出自己的,您可以随时查看Caliburn.Micro 实现或MVVM Light Toolkit中的 Mvvm Light Messenger 以获得灵感。

于 2013-01-10T18:01:28.383 回答