我正在设计一个庞大的 UI。我的雇主想要的方式,至少有 100 个标签。现在,我一直认为在这种情况下,将 UI 分解为更小的自定义控件是理想的方法。但是,最近有人告诉我,自定义控件实际上只用于代码重用。实际建议的做法是什么?
编辑
完成的表格将如下所示:
现在,我将 WPF 用于 UI,并且正在考虑将其分解为更小的部分。
我正在设计一个庞大的 UI。我的雇主想要的方式,至少有 100 个标签。现在,我一直认为在这种情况下,将 UI 分解为更小的自定义控件是理想的方法。但是,最近有人告诉我,自定义控件实际上只用于代码重用。实际建议的做法是什么?
编辑
完成的表格将如下所示:
现在,我将 WPF 用于 UI,并且正在考虑将其分解为更小的部分。
根据您的图像,我看到了一些重复,每个重复都可能是自定义 UserControl
但这取决于可用性,编写自定义 UserControl 是否更容易所以这样做,但如果它会降低代码的可读性并且还会增加额外的复杂性,请不要这样做
这里是一个例子,可以是单独的 UserControl
绿色的可能是有用的逻辑封装
橙色的可能需要一些非市场的东西(对你的软件不够了解)
红色的可能是基于实习生使用的(从视觉部分来看它们是重复的,所以应该自定义用户控件)
您应该使用数据网格,并且可以自定义其模板以从渲染角度将单个单元格渲染为 Textblock(标签的较轻版本)。Textblock 和 Label 之间的主要区别是非常小的东西,例如访问键和禁用状态行为。但是从 WPF 对象层次结构来看,文本块要轻得多。但除此之外 - 从您的雇主的角度来看 - 一旦您自定义了网格模板并渲染它们(因此它们看起来像文本块/标签) - 您的雇主应该没有问题。
同样正如上面有人建议的那样——如果你想在逻辑上打破 UI 的各个部分,因为它们可能来自 db 中的不同表——那么用户控件就是要走的路(为了代码的可维护性)
如果您正在寻找更多技术细节或需要进一步的技术帮助,请告诉我。
您是 WPF 新手吗?要将视图分解为 WPF 为您提供了 CustomControls 和 UserControls。它们是两个非常相似但又完全不同的东西。自定义控件是按钮、标签、文本框、数据网格...等。它们基本上是简单的独立控件。UserControls 是一组独立的控件,例如一个按钮和一个组合框,它们彼此相邻,因此用户可以在组合框中选择某些内容并通过单击按钮进行确认。
如果您希望显示数据库中的数据,我建议您使用 DataGrid,它将为您提供类似于表的外观,包括行和列等等。如果您希望在 DataGrid 旁边放置几个按钮,用户可以单击这些按钮插入新行或编辑某个单元格,那么我建议您使用 UserControl 包装所有这些按钮,您可以在必须显示的其他地方重复使用它并更改数据库中的数据。
由于您的 UI 是只读的,我建议使用grid。
制作和使用自定义控件或用户控件或定义一些将根据数据组织方式重复使用的数据模板没有任何问题。
当然,UI 看起来很混乱,并且应该在模板中使用某种网格,例如在有类似数据的地方。我也有建议,在开始之前先考虑数据和功能,让 UI 由它来驱动。你肯定会重用控件/模板。如果您先考虑模型和行为,则以后可以更轻松地更改 UI。
正确创建视图模型,在命令中实现功能,使用绑定,然后 UI 会自然而然,重用控件,使用多个网格,使用多个区域、选项卡、窗口或任何使用户更舒适的东西使 UI 更加用户友好.