创建具有自定义类绑定的复选框组合框
本文关键字:复选框 组合 绑定 自定义 创建 | 更新日期: 2023-09-27 18:29:11
这很简单,我有一个字符串和布尔的小容器类:
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),并尝试将一个组合框绑定到它的Fields属性:
<ComboBox Grid.Column="1"
ItemsSource="{Binding filterBundle1.Fields}">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Field}"
IsChecked="{Binding Checked}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
但是,下拉列表为空。我需要在这两个类的getter中做些什么来允许访问filterBundle1列表中的每个Filter的Field和Check吗?
尝试使用ObservableCollection
作为ItemSource
,而不是List
。
public ObservableCollection<Filter> Fields { get; set; }
您可以通过以下方式轻松地将您的列表翻译为:
Fields = new ObservableCollection<Filter>(MyFieldList);
通常,WPF依赖于集合和属性,并分别实现INotifyCollectionChanged
和INotifyPropertyChanged
来更新UI。