【发布时间】:2013-10-10 19:06:34
【问题描述】:
我有一组嵌套视图如下:
每个视图都有一个 Presenter,其中:
-
MainViewPresenter不知道视图或视图演示者ViewA或ViewB -
ViewA和ViewB由各自的演示者单独管理,然后由SplitViewPresenter管理
我有将在ViewA 中发生的事件,ViewAPresenter 将订阅这些事件。 SplitViewPresenter 可以订阅儿童演示者的事件,然后将这些事件冒泡到MainViewPresenter。但这似乎只是从ViewA 冒泡一个按钮点击,这是一种可怕的浪费。
似乎应该有一种方法可以将一些事件侦听器从MainViewPresenter 耦合到ViewA.OnButtonClick。
在这种情况下,MainViewPresenter 无法预知其他演示者显示的内容,观察者/可观察模式似乎不合适。或者也许有一个使用 Reactive 的实现可以工作(注意:.Net 4.0 然而)
代表会是要走的路吗?我知道ViewA 上的每个事件订阅可能需要不同的委托,这很好。在此特定实例中,按钮单击将具有需要执行的操作:
- 用新信息更新数据库
- 将
ViewA创建的新模型添加到MainView的树形视图中
【问题讨论】:
标签: c# winforms events delegates mvp