【问题标题】:How to manage cascading GUI changes in winforms?如何管理winforms中的级联GUI更改?
【发布时间】:2011-07-18 08:13:40
【问题描述】:

在我正在处理的应用程序中,GUI 字段之间存在很多依赖关系。例如,当用户更改文本框中的值时,表单上的其他控件需要根据新值进行更改,这反过来可能会也可能不会触发表单上的其他更改。这些关系可以任意复杂化,并且用户需求经常变化。

我知道有诸如 MVC 之类的模式将业务逻辑分离到一个控制器中,但我认为我试图解决的问题是不同的,因为它是逻辑本身变得复杂。似乎关系可以建模为有向图,每个 GUI 控件都是一个节点。我想知道这是否是处理它的正确方法,以及在我尝试推出自己的框架之前是否有任何框架。

【问题讨论】:

  • 重申您的问题是:“我想要一个外部 [事物] 来封装逻辑并根据变化的数据更新 GUI”。该问题的答案是 MVC 框架的用途 - 或 Gnostus 的以下建议。
  • 我不想要那个。我想要一个外部的东西来处理对象状态之间的依赖关系。我根本不应该提到 GUI。这只是我正在寻找的一个具体案例。

标签: c# winforms events user-interface design-patterns


【解决方案1】:

我们使用“外观模型”让控制器更新该模型的状态,而视图仅根据外观模型进行自我更新。

MyAppModel.MyControl.Readonly = true;

这将绑定到视图上的控件只读属性。

所以现在我可以根据一些事件打开/关闭这些状态以更改视图。

【讨论】:

  • 这很聪明。但是,也许我的问题并不清楚,因为我试图弄清楚如何在 GUI 中管理事件传播,而不是如何使用 MVC。
  • 我建议不要在这个意义上使 GUI 变得智能,而是将其提取到控制器中,但我可以推荐 Reactive Framework,因为我们刚刚采用了它,如果你是,它可以在事件管理方面创造奇迹熟悉 Linq。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多