动态地在UI中进行更改

时间:2015-03-08 13:28:02

标签: c# wpf xaml

我是WPF和C#的新手。我需要在Template.xaml中创建一个Label和一个Button。但Label和Button创建的数量是用户特定的,这是另一个design.xaml。即如果用户给出值5,则需要使用Template.xaml文件创建五个Label和Button。

我在design.xaml中试过了类似的东西,

xmlns:local="clr-namespace:UserDesign"

<local:Template HorizontalAlignment="Left" VerticalAlignment="Top" />
<local:Template HorizontalAlignment="Left" VerticalAlignment="Top" />
<local:Template HorizontalAlignment="Left" VerticalAlignment="Top" />

但这似乎是固定的。我需要根据用户输入动态执行此操作。

1 个答案:

答案 0 :(得分:0)

如果没有更完整的代码示例,很难确切知道您的方案是什么。但是,如果您正在处理的是对象集合,其中每个对象对应于某个Template对象的单个实例(可能包含您的LabelButton对象) ,那么你可能想要使用WPF的数据模板功能。

这里有一个相当不错的教程:Data Templating Overview

基本思想是声明DataTemplate对象,该对象用于ItemTemplate的{​​{1}}属性或子类(例如ItemsControl)。将声明ListBox应用于特定数据类型(例如集合中的对象类型),并且您将使用模板中的UI元素和数据类型之间的绑定来为每个数据对象自定义这些元素

根据您DataTemplate本身的声明,可能最终适用于Template声明。或者它可能不会......如果没有看到an actual good, minimal, complete code example,就无法说出来。