C#WPF数据绑定到未知数量的复选框

时间:2010-02-07 23:25:59

标签: c# wpf collections checkbox data-binding

在我的应用程序中,我为每个可能的类别(从数据库中检索)生成CheckBoxes,用户可以检查任何适用的数字。我将复选框命名为“cbCategory [ID]”,其中ID是数据库中该类别的ID。

然后我需要生成某种集合类(作为我的对象类的属性)来存储categoryID和一个布尔值(选中/取消选中)。

我的问题是,什么是最好的集合类使用,我将如何绑定它?结合后面的XAML和Code会是什么样的?

希望这能解释得很好,提前感谢答案!

1 个答案:

答案 0 :(得分:4)

  1. 定义一个类来保存类别名称(string)及其检查状态(bool)。
  2. 定义类型为ObservableCollection<T>的集合,其中T是您在(1)中定义的类。
  3. 在XAML中创建ItemsControl并将其ItemsSource属性绑定到(2)中的集合。
  4. 在XAML中定义DataTemplate,在其中显示CheckBoxTextBlock,将它们绑定到对象中相应的属性(1)。
  5. 不要忘记将ItemsControl.ItemTemplate设置为{4}中的DataTemplate
  6. 使用这种方式,您不需要从代码生成控件,您需要生成的是每个类别一个对象(在(1)中定义的对象)。

    作为需要考虑的旁注 - 每当您从代码手动生成控件时 - 您做错了,并且使用绑定,样式和模板(以及有时更高级的功能,如附加属性等)有一种更简单的方法。)