C# 使用MVP动态添加不同的视图

C# 使用MVP动态添加不同的视图,c#,model-view-controller,mvp,presenter,C#,Model View Controller,Mvp,Presenter,首先让我说这是我第一次尝试MVP。我将采用被动视图方法,因为我希望将视图与模型完全解耦 我通过阅读以下文章和其他文章了解了MVP 德里克·格里尔 托德·斯奈德 我的应用程序将有4个视图,这些视图是自定义控件,其中每个视图都实现了一个不同的接口来与演示者交互。现在,这对于3个视图来说不是问题,因为控件是静态的,永远不会更改 我的问题是,在第4个视图中,我需要更改基于视图1触发的事件显示的控件/视图 例如,让我们假设视图1是员工或客户的人员列表。现在,根据所选人员,您可以根据所选人员的类型修改不

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

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

德里克·格里尔

托德·斯奈德

我的应用程序将有4个视图,这些视图是自定义控件,其中每个视图都实现了一个不同的接口来与演示者交互。现在,这对于3个视图来说不是问题,因为控件是静态的,永远不会更改

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

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

那么,我的演示者如何知道如何管理与模型的交互,当取决于是否选择了员工或客户时,是否有实现不同视图界面的不同编辑器

我希望这是清楚的。非常感谢您的帮助。我已经搜索了所有地方,所有的例子都显示了视图和演示者之间的具体关系,而我的需要非常灵活

我的目标是保持第四个视图上的编辑控件的灵活性,例如,我可以添加外星人或狗的编辑控件/视图,或者添加到要选择的视图1中的任何其他控件


谢谢

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

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

不要把事情复杂化…对每项责任都使用不同的观点。风景很便宜