使用 xaml 动态创建控件
Creating controls dynamically using xaml
我的应用程序中有一个 objects 列表,我想使用它来动态创建包装面板。一种方法是编写控制添加代码,如下所示。
WrapPanel RuleInternalCond = new WrapPanel();
// Create operator combo box and fill all operators
ComboBox operatorCb = new ComboBox();
operatorCb.Items.Add("OR");
operatorCb.Items.Add("AND");
RuleInternalCond.Children.Add(operatorCb);
但是有没有更好的方法来创建包装面板的模板,将其绑定到我的属性并使用我在 xaml 中的 collection 自动创建包装面板模板列表?
详细解释。
我想在 xaml 中创建一个包含绑定到属性的控件的包装面板。但是如果我想根据我的 collection 动态创建这些包装面板的列表,问题就来了。例如我的收藏是
列表 = 新列表
其中 MyRules 是
字符串名称;
字符串条件;
我希望列表项位于带有名称和条件文本框的 WrapPanel 中
只是使用 ItemsControl 的代码示例。我假设您使用的对象具有这两个属性,并且您需要使用 ObservableCollection,就像评论中写的 @XAMIMAX (ObservableCollection<MyObject> MyList
).
<ItemsControl ItemsSource="{Binding MyList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding Condition}"/>
</WrapPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我的应用程序中有一个 objects 列表,我想使用它来动态创建包装面板。一种方法是编写控制添加代码,如下所示。
WrapPanel RuleInternalCond = new WrapPanel();
// Create operator combo box and fill all operators
ComboBox operatorCb = new ComboBox();
operatorCb.Items.Add("OR");
operatorCb.Items.Add("AND");
RuleInternalCond.Children.Add(operatorCb);
但是有没有更好的方法来创建包装面板的模板,将其绑定到我的属性并使用我在 xaml 中的 collection 自动创建包装面板模板列表?
详细解释。 我想在 xaml 中创建一个包含绑定到属性的控件的包装面板。但是如果我想根据我的 collection 动态创建这些包装面板的列表,问题就来了。例如我的收藏是
列表 = 新列表 其中 MyRules 是
字符串名称; 字符串条件;
我希望列表项位于带有名称和条件文本框的 WrapPanel 中
只是使用 ItemsControl 的代码示例。我假设您使用的对象具有这两个属性,并且您需要使用 ObservableCollection,就像评论中写的 @XAMIMAX (ObservableCollection<MyObject> MyList
).
<ItemsControl ItemsSource="{Binding MyList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding Condition}"/>
</WrapPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>