我有一个绑定列表列表和一个组合框下拉用户界面。
如果我这样做:dropdownUI.DataSource = list,列表中的所有雇员都将显示在下拉列表中。我想知道是否有一种方法可以只显示hidden = false的雇员,以便在修改雇员隐藏属性时,可以从组合框中隐藏记录?
public class Employee {
public string name {get; set;}
public bool hidden {get; set;}
public Employee(string name, bool hidden) {
this.name = name;
this.hidden = hidden;
}
}
1条答案
按热度按时间esbemjvw1#
没有办法使用
BindingList
本身。它实现了IBindingList
接口,但你需要IBindingListView
接口来获得过滤。你有三个主要的选择:1.定义实现
IBindingListView
的自定义类。1.用数据填充
DataTable
,然后直接绑定它或通过BindingSource
绑定它。当绑定DataTable
时,数据实际上来自其DefaultView
,即DataView
类型。DataView
和BindingSource
都实现IBindingListView
。1.基于所需的筛选器创建新列表,并绑定该列表而不是原始列表。
前两个选项允许您修改项目并让筛选器自动更新UI,而第三个选项要求您在每次修改项目时生成新的筛选列表。