我正在设计一个遵循MVP模式的Winforms MDI应用程序,并且我遇到了与应用程序不同部分之间的通信相关的一些问题。
这是这个应用程序的简单图片: 1 - 左边是树视图 2-在绘图组件的中间 右边是一个“财产”形式。 这3个部分由MVP三元组管理(好吧,不是真的,模型对所有三元组都是通用的)
当我单击树视图上的节点时,我想在绘图组件中看到相应所选对象的绘图,我想在属性表单中看到与此选定对象相对应的一些属性。
我的基本问题是: a)在哪里存储“选定对象”信息? b)如何警告“选定对象”已更改的“绘图”组件和属性表单?
我开始想象一些解决方案,但我很不高兴。
我不会在模型中购买“Selected object”并执行观察者同步。 “选定对象”不属于模型
我想,我会将这些信息存储在演示者中 如果我在Treeview演示者中放置“选定对象”,在我看来,绘制组件的Presenter和属性的Presenter表单都必须在treeview演示者上保留一个引用,以检索此信息。
它在演示者之间创建了一些耦合,我也不喜欢。
所以我正在寻找其他想法和评论。谢谢你的时间。
答案 0 :(得分:0)
首先,抱歉迟到的回复:)有很多东西要完成:D
我不知道您的代码是如何构建的,但您可以使用Retlang。然后,您可以轻松传递消息中的ID列表,并随时随地处理此消息。
对我来说,听听你一年前如何解决问题也很有意思。