【发布时间】:2019-10-15 02:00:14
【问题描述】:
我有一个包含有界项的 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。
【问题讨论】:
-
每次将项目添加到 org_list 时,如果项目不为空,也将其添加到列表中。或者,每当您将项目添加到 org_list 时,只需为列表属性引发属性更改通知。
标签: c# wpf combobox binding observablecollection