创建复选框的自定义类绑定的组合框

问题描述:

这很简单,我已经得到了弦乐和BOOLS一个小容器类:创建复选框的自定义类绑定的组合框

public class Filter 
     { 
     public Filter(string field, bool chec = false) 
     { 
      Field = field; 
      Checked = chec; 
     } 
     public String Field { get; set; } 
     public bool Checked { get; set; } 
    } 

而且我在另一个类的过滤器列表:

public class FilterBundle 
{ 
    public List<Filter> Fields { get; set; } 
... 

现在我创建一个FilterBundle(filterBundle1),并尝试将组合框绑定到其字段属性:

<ComboBox Grid.Column="1" 
    ItemsSource="{Binding filterBundle1.Fields}"> 
     <ComboBox.ItemTemplate> 
      <DataTemplate> 
       <CheckBox Content="{Binding Field}" 
        IsChecked="{Binding Checked}"/> 
      </DataTemplate> 
     </ComboBox.ItemTemplate> 
</ComboBox> 

但是,下拉列表为空白且为空。在任何一个类的getter中,我需要做些什么来允许访问Field并检查filterBundle1的列表中的每个Filter?

尝试使用ObservableCollection作为您的ItemSource而不是List

public ObservableCollection<Filter> Fields { get; set; } 

您可以在列表中很容易转化为一个:

Fields = new ObservableCollection<Filter>(MyFieldList); 

一般来说,WPF取决于集合和性能,以实现INotifyCollectionChangedINotifyPropertyChanged分别以更新UI。

+0

工作完美,非常感谢! – odkken

+1

没问题。如果你找到你的答案,请注意并勾选标记。 :) – Khan