2013-08-28 89 views
2

這很簡單,我已經得到了絃樂和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?

回答

2

嘗試使用ObservableCollection作爲您的ItemSource而不是List

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

您可以在列表中很容易轉化爲一個:

Fields = new ObservableCollection<Filter>(MyFieldList); 

一般來說,WPF取決於集合和性能,以實現INotifyCollectionChangedINotifyPropertyChanged分別以更新UI。

+0

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

+1

沒問題。如果你找到你的答案,請注意並勾選標記。 :) – Khan