忽略空的 ComboBoxItems
Ignore empty ComboBoxItems
我有一个组合框,其中包含有边界的项目,例如
<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。
创建一个镜像列表,公开没有空的列表。对于更改订阅相关的可观察集合事件,例如 add/remove 并保持镜像一致。然后绑定到这个过滤列表。
我有一个组合框,其中包含有边界的项目,例如
<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。
创建一个镜像列表,公开没有空的列表。对于更改订阅相关的可观察集合事件,例如 add/remove 并保持镜像一致。然后绑定到这个过滤列表。