这是一个涉及风格的问题。我正在寻找可以帮助我解决常见GUI设计问题的想法。该应用程序在Winforms中完成,而且相当WPF
,应用程序已经完成,但完全是完美主义者,在与其他人合作时,我认为必须有更好的方法来解决这个问题。
如何使用一组功能封装控件?考虑到可能存在相同功能的多个列,我们可以假设我们拥有以下自定义空中飞机系统。这允许飞行协调员为每个航班分配某些飞行人员。他们可能对整个机队的所有飞机都不感兴趣,因此他们有能力在选择分配的工作人员之前选择他们想要查看的飞机,或者如果已经分配了工作人员,那么它将预先填充工作人员单元。
我们实现此问题的当前方式是为每个单元格使用一个按钮,但这意味着我们必须使用类中的多个按钮封装每个列。每列由一个名为“AirplaneCrew
”的类表示,并组成每个分配的人员,当前飞机处理这些列的数据。附加到每个AirplaneCrew
的是AirplaneCrewGUI
,它封装了按钮列,然后相应地生成GUI。为了更好地理解它,我提供了一个简单的UML
,它可能并不完美,但这是我对如何将类与GUI交织在一起的理解。如果有人有书或者可以提供使用GUI
元素时如何实现更好练习的摘要。
答案 0 :(得分:1)
MVVM和MVP都将视图(UI)与逻辑分开。
WPF中的DataBinding允许创建模板,根据需要呈现的数据“生成”UI。
我希望当前的设计中缺少这两件事(或者引起很多痛苦)。
灵活的UI需要明确区分关注点,以便在需要满足新要求时知道在何处更改系统,并且当您不想手动执行所有调整时,您将需要一些逻辑(运行时或设计时)这将根据配置和/或元数据自动生成系统。
如果当前的技术不支持这两项功能,您需要创建这些功能(大量工作),从其他人那里获取或切换到不同的技术。