MVP连接三合会

时间:2009-12-16 12:36:29

标签: mvp

我有一个左窗格和右窗格的主窗体。左侧窗格显示客户列表,我有一个用户单击以显示订单的按钮。当用户单击此按钮时,我想在右侧窗格中显示下面描述的订单详细信息视图。

我有一个订单详细信息表单,该表单将显示在主表单的右侧窗格中,并将显示所选客户的所有订单。

我为两个视图定义了视图接口,每个视图都有一个演示者。

我希望订单详细信息能够保留所选客户,以便它可以获得该客户的订单。

我应该怎么做?事件聚合器?复合演示者?

1 个答案:

答案 0 :(得分:1)

每个窗格都不是单独的视图。通过这样做,您将表单的细节与演示者联系起来。基本的想法是,当您编辑客户列表时,演示者不应该关心表单的设置方式。

您的两个窗格视图应从演示者中提取客户列表,并使用该列表填写左窗格。然后,当单击某个项目时,它会向演示者询问客户所做的订单列表以及其他详细信息。

这种方法可以解决您的问题,因为现在只有一个视图。当您单击订单上的某些内容并且需要了解当前客户时,您可以参考树视图(或组合框或列表视图等)以查看当前所选客户的内容。

避免这样的问题的诀窍是问自己,如果我创建一个使用完全不同的UI元素的新表单会发生什么。演示者是否必须进行修改才能反映出来?如果演示者那么你将它与视图的实现联系得太紧了。