【问题标题】:Model-View-Presenter with Delegates, Events and Nested Presenter具有代表、事件和嵌套演示者的模型-视图-演示者
【发布时间】:2013-10-10 19:06:34
【问题描述】:

我有一组嵌套视图如下:

每个视图都有一个 Presenter,其中:

  • MainViewPresenter 不知道视图或视图演示者ViewAViewB
  • ViewAViewB 由各自的演示者单独管理,然后由 SplitViewPresenter 管理

我有将在ViewA 中发生的事件,ViewAPresenter 将订阅这些事件。 SplitViewPresenter 可以订阅儿童演示者的事件,然后将这些事件冒泡到MainViewPresenter。但这似乎只是从ViewA 冒泡一个按钮点击,这是一种可怕的浪费。

似乎应该有一种方法可以将一些事件侦听器从MainViewPresenter 耦合到ViewA.OnButtonClick

在这种情况下,MainViewPresenter 无法预知其他演示者显示的内容,观察者/可观察模式似乎不合适。或者也许有一个使用 Reactive 的实现可以工作(注意:.Net 4.0 然而)

代表会是要走的路吗?我知道ViewA 上的每个事件订阅可能需要不同的委托,这很好。在此特定实例中,按钮单击将具有需要执行的操作:

  • 用新信息更新数据库
  • ViewA 创建的新模型添加到MainView 的树形视图中

【问题讨论】:

    标签: c# winforms events delegates mvp


    【解决方案1】:

    我意识到MainView 中的树视图有一个树节点的集合。此集合已引发 CollectionChanged 订阅的 MainViewPresenter 事件。

    ViewAPresenter 引用了这个集合,并简单地将保存的模型添加到集合中。依次通知MainViewPresenter 并添加适当的节点。

    【讨论】:

      猜你喜欢
      • 2013-02-23
      • 2015-07-23
      • 2014-10-31
      • 1970-01-01
      • 2012-07-06
      • 2016-12-18
      • 2010-10-05
      • 2011-04-18
      • 1970-01-01
      相关资源
      最近更新 更多