【发布时间】:2016-02-07 14:49:22
【问题描述】:
我即将从 DataTable 数据创建一个动态 WPF UI 表单。屏幕会相当复杂。它们将包含文本框、组框、复选框、按钮、数据网格等。其中一些是可见的,一些连接的事件处理程序和类似的东西。
考虑到性能影响和编写和维护源代码的复杂性要求,您会选择哪种方法来创建这些动态屏幕。请注意,此代码将运行很多,因此它必须高效且快速。我正在考虑以下选项:
- 在代码中创建控件,将它们组合成一棵树,并将树(网格控件)用作 WPF 表单的根元素。
1.a) 通过 XAMLReader 从该屏幕对象树创建一个 XAML,并通过 WPF 表单中的 XAMLReader 加载它。创建 XAML 对我来说似乎是多余的,因为我可以直接将构建的树用作 WPF 表单的内容。
- 使用 XMLDocument 类创建标签、对象及其属性。创建一个类似的 XAML,然后以 WPF 形式加载该 XAML。
谢谢,
迈克尔
【问题讨论】:
-
从
DataTable创建一个动态 UI 听起来非常难以维护。您是否已用尽所有其他选项?您能否就为什么您需要这样做以及这些数据会是什么样子提供更详细的解释? -
请查看 MEF 和 Prisim。 codeproject.com/Articles/254120/Prism-MEF-Application
-
我的屏幕数据都存储在数据库中(对象名称、父级、屏幕坐标、类型等列)我对此无能为力。我唯一能做的就是将数据转换为其他格式,但首先我需要以 DataTable 的形式处理它。我的问题更多是关于在代码中创建控件还是创建 XAML?
标签: c# wpf performance xaml user-interface