在winforms中使用MVP模式是基于演示者了解IViewInterface定义的访问控件。例如,如果表单上有2个文本框和一个按钮,则定义带有文本框的两个属性的IViewInterface,并在按钮单击事件时将调用转发给Presenter,演示者可以访问这两个属性。很简单。现在假设您的UI是在运行时基于数据库中的表构建的。假设您的数据库中有500个表,并且您希望为这500个表设计CRUD应用程序。我们可以在数据库中的某个位置定义如何在UI中布局这500个表。你有一个程序在运行时为这500个表创建UI控件。在这种情况下如何应用MVP模式?
答案 0 :(得分:1)
许多程序员尝试过完全动态的用户界面,但没有取得多大成功。我相信很多人都可以给你一个基本的前提,即表格 - >制作用户界面,但除此之外什么都没有真正解决,所以你最好只做自己的事情。
如果你认为你有不同的方法,你应该尝试一下,看看它是如何工作的。
答案 1 :(得分:0)
为此,演示者根本不应该关心控制。
视图可能会将此数据公开为属性。如果那些具有500个UI布局的500个表都至少使用像GridView这样的标准显示控件,则可以为GridView中的活动行公开“CurrentTableName”属性和“CurrentRow”属性。演示者可以接受这些并传递或转换为DTO或DM对象到业务或服务层。
但在这种情况下,这可能是也可能是不可能的。
答案 2 :(得分:0)
在winforms中使用MVP模式是 据主持人所知 关于要访问哪些控件 由IViewInterface
定义
是的,但在动态GUI的情况下,您不需要将这些控件单独作为接口的属性公开。您可以将通用控件定义为具有某些公共属性的类,并将这些控件的列表公开为视图界面的单个属性。
这只是一种方法 - 设计取决于具体情况。但总的来说,我会说动态GUI甚至是更好候选人引入MVP,而不是相反。