使用 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>