2

这很简单,我有一个用于字符串和布尔值的小容器类:

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 中做些什么来允许访问 Field 并检查 filterBundle1 列表中的每个过滤器吗?

4

1 回答 1

2

尝试使用 aObservableCollection作为 yourItemSource而不是 a List

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

您可以通过以下方式轻松地将您的列表转换为一个:

Fields = new ObservableCollection<Filter>(MyFieldList);

通常,WPF 依赖于集合和属性并INotifyCollectionChanged INotifyPropertyChanged分别实现来更新 UI。

于 2013-08-28T01:03:37.310 回答