winforms WF .Net ComboBox控件-如何仅显示符合条件的项目

wixjitnu  于 2022-11-16  发布在  .NET
关注(0)|答案(1)|浏览(174)

我有一个绑定列表列表和一个组合框下拉用户界面
如果我这样做: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;
   }
}
esbemjvw

esbemjvw1#

没有办法使用BindingList本身。它实现了IBindingList接口,但你需要IBindingListView接口来获得过滤。你有三个主要的选择:
1.定义实现IBindingListView的自定义类。
1.用数据填充DataTable,然后直接绑定它或通过BindingSource绑定它。当绑定DataTable时,数据实际上来自其DefaultView,即DataView类型。DataViewBindingSource都实现IBindingListView
1.基于所需的筛选器创建新列表,并绑定该列表而不是原始列表。
前两个选项允许您修改项目并让筛选器自动更新UI,而第三个选项要求您在每次修改项目时生成新的筛选列表。

相关问题