【问题标题】:UI Design, incase of numerous situationsUI设计,以防万一
【发布时间】:2010-06-07 17:06:37
【问题描述】:

我正在创建一个网络表单,其中大约有 12-15 个输入字段...

你可以看看屏幕here http://img9.imageshack.us/img9/2951/image001um.jpghere http://www.freeimagehosting.net/uploads/f9f4491598.jpg

请求是这样的,根据用户在 Gridview 和 DropDown 列表中选择的数据,需要显示适当的文本框和复选框。

有时候条件很直接,比如当DDL值为“ABC”时,只从用户那里得到支付的金额。

有时它们是如此复杂,例如...如果 DDL 为“DEF”且选定的 GPMS 值在 1000-2000 之间,计算允许、付费等的值(使用一些公式),重点应指向第字段,如果用户想要编辑,则将其他字段保持打开状态...大约有 10-15 个这样的条件。

由于这是通过敏捷完成的,因此会在合适的时间和任何地方添加条件(更改事件的 DDL、选择更改事件的 GridView 等等......)完成后,现在我看到了代码已经变成了一个大笨蛋,正在变得难以控制......

现在,我打算解决这个问题……根据你的经验,你认为最好的方法是处理这个问题。将来有可能添加更多这样的条件......

如果您需要更多信息,请告诉我。我目前正在用 C# .Net WindowsForms 开发这个应用程序

编辑:目前只有三个项目(Datagrid、DDL、OverrideAmt CheckBox)会改变其他字段的行为方式......

几乎所有的条件都介于我提到的两种情况之间...... 它们大多属于“启用/禁用”..“设置值”......和“改变焦点” 或这些的任何组合。

【问题讨论】:

  • 两个澄清会有所帮助:1) 是否有许多字段会改变其他字段的行为方式(如“DDL”),还是只有少数几个? 2) 在您提到的这 10-15 个条件中,它们之间是完全不同的,还是或多或少相同?
  • 目前只有三个项目(Datagrid、DDL、OverrideAmt CheckBox)会改变其他字段的行为方式......几乎所有条件都介于我提到的两种情况之间...... . 大多数情况下,它们属于“启用/禁用”..“设置值”...和“改变焦点”或这些的任意组合。

标签: c# .net winforms user-interface


【解决方案1】:

最小开销


编写一个包含所有评估逻辑的单一过程
即评估所有单独的状态并在过程中显示/隐藏适当的控制。

现在,只要有任何更改事件,就调用此过程
这需要您重新评估是否显示/隐藏任何控件。

不要显示/隐藏此过程之外的任何控件。

将来任何额外的验证检查都可以轻松合并
通过在此过程中添加额外的检查。

要提高此过程的性能:
[1] 在过程中添加一个参数(int/string)。
[2] 从不同对象的不同事件调用时,在此参数中传递不同的值。
[3] 在程序中,根据参数的值,您可以确定是什么对象(&什么事件)触发了这个重新评估。

因此,您只能评估可能取决于此特定对象中此特定更改的那些条件。这样,重新评估的开销就降到了最低限度。

【讨论】:

  • 谢谢...特别是在这么长时间后看这个问题...我几乎认为这被埋在新问题下...顺便说一句,我所做的或多或少类似于这个...我会保持这个问题开放,以了解其他人的建议...
猜你喜欢
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
  • 2017-01-16
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
相关资源
最近更新 更多