【问题标题】:Dynamically Adding Different Views Using MVP使用 MVP 动态添加不同的视图
【发布时间】:2012-05-20 10:35:47
【问题描述】:

首先让我说这是我第一次尝试尝试 MVP。我将采用被动视图方法,因为我想将视图与模型完全分离。

我通过阅读以下文章了解了 MVP

德里克·格里尔
http://aspiringcraftsman.com/2007/08/25/interactive-application-architecture/

托德·斯奈德
http://blogs.infragistics.com/blogs/todd_snyder/archive/2007/10/17/mvc-or-mvp-pattern-whats-the-difference.aspx

我的应用程序将有 4 个视图,它们是自定义控件,每个视图都实现不同的界面来与 Presenter 交互。现在这对于 3 个视图来说不是问题,因为控件是静态的并且永远不会改变。

我的问题出现在第 4 视图中,我需要更改基于从视图 1 触发的事件显示的控件/视图。

例如,假设 View 1 是一个可以来自员工或客户的人员列表。现在,根据所选人员的不同,您可以根据所选人员的类型修改不同的参数。问题是 View 4 需要根据所选内容动态更改编辑控件。请记住,不仅属性会有所不同,而且它们的编辑方式也会有所不同。此外,每个编辑控件都会为属性更改触发不同的事件。

那么我的 Presenter 是如何知道如何管理与模型的交互的,当取决于选择的是员工还是客户时,会有一个不同的编辑器实现不同的 View 界面?

我希望这很清楚。任何帮助是极大的赞赏。我进行了全面搜索,所有示例都显示了 View 和 Presenter 之间的具体关系,而我的需要非常灵活。

我的目标是保持 4th View 上的编辑控件非常灵活,例如,我可以为外星人或狗添加编辑控件/视图,或者我可能添加到 View1 以供选择的任何其他内容。

谢谢

【问题讨论】:

    标签: c# model-view-controller mvp presenter


    【解决方案1】:

    我个人不喜欢“主讲者”本身。我确实构建了复合演示者:例如View 可以包含多个视图之一,因此我为主视图构建了一个 Presenter,它将命令(消息、事件等)发送给特定的子 Presenter(我不会在它拥有的 Presenter 之外公开任何 View)。

    不要让事情变得过于复杂……对每个职责使用不同的视图。观看次数很便宜。

    【讨论】:

      【解决方案2】:

      您可以创建一个顶级演示者来侦听选择事件并通过根据所选内容实例化不同的 MVP 三元组来更改编辑控件。通常在 MVP 中,您的演示者管理所有构造/依赖项。

      【讨论】:

        猜你喜欢
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        • 2015-06-16
        • 2017-05-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多