繁体   English   中英

你如何实现复杂的 UI 逻辑?

[英]How do you implement sophisticated UI logic?

我正在寻找复杂的 UI 逻辑实现的最佳实践。 我正在开发一个 Windows Forms 应用程序,但我相信在任何平台上都应该有解决这个问题的通用模式。

我的表单上有许多控件,有列表、按钮、表格和树视图。 因此,想法是根据“上下文”启用某些控件,而禁用其他控件。 其中一些可以暂时提供一些功能,而另一些则不能。

目前它是“按原样”实施的。 我处理事件,检查更改(选择了新的树节点,选择了几个节点等),然后决定是否需要禁用或启用某些控件。 我不太喜欢这种方法,因为表单代码看起来很复杂。 如果我需要添加更多逻辑,它会变得更加复杂。 我真的很担心,因为我们非常敏捷,新功能或大量更改是日常常态。

我想将所有这些逻辑分成几部分(功能),其中每个功能都是一个 object,它知道如何检查其 state,并根据此 state,启用或禁用相关控件。

不要真的想发明任何新东西并试图找到任何被广泛使用的好主意。 请不要推荐单一的 UpdateUI() 方法,我相信从长远来看这不会改变任何事情。

谢谢。

这个博客系列可能是您正在寻找的:

http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/

(可能看起来有很多材料,但从“Humble Dialog box”开始,基于Michael Feathers 的精彩文章)。 这就是“如何将你的逻辑与你的 UI 代码分开”,这可能会解决你的大部分问题。

用户界面数据绑定并将您的业务逻辑封装到业务对象中是 go 的方式。 Rocky Lhotka 的 CSLA.NET 框架内置了许多出色的功能以及许多示例应用程序。 我已经在一个中型 WPF 项目和一个巨大的 WinForms/CAB 应用程序中使用它,并且非常喜欢它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM