4

我在左侧面板中有一个拆分容器,是一个带有按钮的用户控件。右侧面板中是一个初始用户控件,它将根据按下的按钮而改变。我想知道的是如何让带有溢出面板的表单知道从按钮视图的演示者在视图 x 中进行绘制?

4

1 回答 1

8

理论上,Presenter 应该可以访问 Views,在这种情况下,应该通知 Presenter 左面板视图中的任何按钮单击,然后更新 Form 以在右面板中显示视图。

具体如何实现在很大程度上取决于您的具体实现。架构模式是指导方针……没有必须遵循的硬性规定(除非您使用某种 MVP 库,在这种情况下,您将受到该库实现的限制)。

编辑:要在下面回答您的问题,Chip ...

同样,这完全取决于您的实施。在某些情况下,拥有一个庞大的 Presenter 和数十个视图可能是有意义的。在其他情况下,每个视图都有一个演示者可能是有意义的。但是,即使您有多个演示者,您仍然需要维护一个层次结构,以便演示者可以相互交谈。因此,在某处,在某种程度上,演示者将了解按钮单击和等待填充的空容器,即使该知识间接来自另一个演示者。

编辑 2:(针对您更新的评论)没有硬性规定,但 MVP 实现之间的一个共同特征是 Presenter 至少保留部分控制权。这意味着 Presenter 必须具有对所有相关 UI 元素的某种级别的访问权限。如果您将视图嵌套在视图中,那么您仍然需要设计一种方法让 Presenter 与它们进行交互。

于 2012-06-20T20:14:15.167 回答