使用xaml动态创建控件

时间:2015-01-22 11:34:01

标签: c# wpf xaml

我的应用程序中有一个对象列表,我想用它动态创建Wrappanels。一种方法是在后面编写控件添加代码,如下所示。

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中使用我的集合来自动创建包装面板模板列表?

详细解释。 我想创建一个包含xaml控件的包装面板,它绑定到属性。但问题来了,如果我想要根据我的集合动态创建这些包装面板的列表。例如,我的收藏是

列表=新列表 MyRules在哪里

字符串名称; 字符串条件;

我希望列表项位于带有名称和条件的文本框

的WrapPanel中

1 个答案:

答案 0 :(得分:0)

只是使用ItemsControl的代码示例。我假设您使用具有这2个属性的对象,并且您需要在注释(ObservableCollection<MyObject> MyList)中使用像@XAMIMAX一样的ObservableCollection。

           <ItemsControl ItemsSource="{Binding MyList}">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <WrapPanel>
                            <TextBlock Text="{Binding Name}"/>
                            <TextBlock Text="{Binding Condition}"/>
                        </WrapPanel>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>