Winforms 多个MVP演示者:如何沟通和共享信息?

Winforms 多个MVP演示者:如何沟通和共享信息?,winforms,mvp,presenter,Winforms,Mvp,Presenter,我正在设计一个遵循MVP模式的Winforms MDI应用程序,我被一些与应用程序不同部分之间的通信相关的问题所困扰 下面是此应用程序的简单图片: 1-左边是树景 2 -中间的绘图组件 3-右边是“财产”表格。 这三个部分是用MVP三元组管理的(好吧,不是真的,所有三元组都有模型) 单击树视图上的节点时,我希望在绘图组件中查看相应选定对象的图形,并希望在特性窗体中查看与此选定对象相对应的一些特性 我的基本问题是: a) 在何处存储“选定对象”信息? b) 如何警告图形组件和特性窗体“选定对象”已

我正在设计一个遵循MVP模式的Winforms MDI应用程序,我被一些与应用程序不同部分之间的通信相关的问题所困扰

下面是此应用程序的简单图片: 1-左边是树景 2 -中间的绘图组件 3-右边是“财产”表格。 这三个部分是用MVP三元组管理的(好吧,不是真的,所有三元组都有模型)

单击树视图上的节点时,我希望在绘图组件中查看相应选定对象的图形,并希望在特性窗体中查看与此选定对象相对应的一些特性

我的基本问题是: a) 在何处存储“选定对象”信息? b) 如何警告图形组件和特性窗体“选定对象”已更改

我开始想象一些解决办法,但我很不高兴

我不赞成在模型中放置“选定对象”并执行观察者同步。 “选定对象”不属于该模型

所以我想,我会将这些信息存储在演示者中 如果我将“选定对象”放在Treeview presenter中,在我看来,绘图组件的presenter和属性窗体的presenter都必须在Treeview presenter上保留引用才能检索此信息

这会在演示者之间产生一些耦合,我也不喜欢


因此,我正在寻找其他想法和/或评论。谢谢您的时间。

首先,很抱歉回复太晚:)有很多东西要完成:D

我不知道您的代码是如何构建的,但可能您可以使用。然后,您可以轻松地传递消息中的ID列表,并在任何您喜欢的地方处理此消息

我也很有兴趣听到你一年前是如何解决问题的