我有一个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。
答案 0 :(得分:1)
创建一个镜像列表,该列表显示不带空的列表。对于更改,请订阅相关的可观察集合事件,例如添加/删除并保持镜像一致。然后绑定到此过滤列表。