根据字符串列表动态加载用户控件(不带代码)

时间:2016-10-20 13:26:03

标签: c# wpf xaml

我正在开发一个项目,用户应该能够导出不同自定义对象的值。

我正在尝试根据属性名称列表(字符串)找到一种动态加载多个复选框的方法(我在考虑用户控件)。然后,用户应该能够根据应导出的值来选中或取消选中复选框。

我遇到的问题是我不能给用户控制复选框自定义名称,这些名称会链接到应该导出的值。

1 个答案:

答案 0 :(得分:1)

ListBoxItemsControl(如果您需要更多灵活性)绝对是您要走的路。但是,仅仅生成CheckBox es是不够的,因为您还需要一种方法来跟踪它们是否被选中,因此您想要制作某种Choice类并将CheckBox的属性绑定到Choice类的属性。像这样:

    <ListBox ItemsSource="{Binding Choices}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <CheckBox Content="{Binding Name}"
                          IsChecked="{Binding IsChosen}"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

代码隐藏:

public class Choice
{
    public string Name { get; set; }
    public bool IsChosen { get; set; }
}

Choices属性为[{1}}或List IEnumerable的位置。