我即将从DataTable数据创建动态WPF UI表单。屏幕会相当复杂。它们将包含文本框,组框,复选框,按钮,数据网格等。其中一些是可见的,一些连接事件处理程序和类似的东西。
创建这些动态屏幕的方法是选择考虑性能影响和复杂性要求来编写和维护源代码。请注意,此代码将运行很多,因此它必须高效且快速。我正在考虑这些选择:
1.a)从该屏幕对象树通过XAMLReader创建一个XAML,并通过WPF Form中的XAMLReader加载它。创建XAML对我来说似乎是多余的,因为我可以直接将构建的树用作WPF表单的内容。
谢谢,
米甲
答案 0 :(得分:1)
考虑在列表视图中显示您的表单,并为每个表单字段文本框,组框,复选框,按钮,数据网格等创建DataTemplate。
<ListBox ItemsSource="{Binding DataFormFields}"
<DataTemplate DataType="YourTextClass">
<StackPanel>
<TextBlock Text="{Binding LabelText}" />
<TextBox Text="{Binding ValueText}" />
</StackPanel>
</DataTemplate>
<DataTemplate DataType="YourCheckClass">
<StackPanel>
<CheckBox Content="{Binding LabelText}"
IsChecked="{Binding Checked}"/>
</StackPanel>
</DataTemplate>
有关DataTemplates的更多信息,请参阅 https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/data-templating-overview
每个数据模板应与您的一个表单字段类相关联,使用DataType属性,这将使列表框自动使用正确的DataTemplate。 有关详细信息: