忽略空的ComboBoxItems

时间:2019-05-29 12:38:30

标签: c# wpf combobox binding observablecollection

我有一个ComboBox,其中包含有边界项,例如

<ComboBox ItemsSource="{Binding Path=list}"
          DisplayMemberPath="name"
          SelectedValuePath="id"
          SelectedValue="{Binding Path=id, Mode=TwoWay}"/>

问题是list中至少有10个项目可以为空。

是否可以忽略空值作为项目?


我尝试用不同的方法删除空值,例如

[System.Xml.Serialization.XmlIgnore]
public ObservableCollection<myclass> list
{
    get
    {
        ObservableCollection<myclass> list = new ObservableCollection<myclass>();

        foreach (var item in org_list.Where(x => !string.IsNullOrWhiteSpace(x.name)).ToList())
        {
            list.Add(item);
        }

        return list;
    }
}

但是如果我向org_list添加任何项目,它就不会再更新ComboBox。

1 个答案:

答案 0 :(得分:1)

创建一个镜像列表,该列表显示不带空的列表。对于更改,请订阅相关的可观察集合事件,例如添加/删除并保持镜像一致。然后绑定到此过滤列表。