我正在使用Winforms应用程序,并且我有一个绑定到达列表框的对象的绑定列表。我得到了这个,但我接下来要做的只是显示特定属性为真的项目。
所以我有一个带有绑定列表的类
class DataBuilder
{
public BindingList<TableSet> allTableSets = new BindingList<TableSet>();
}
具有一些属性的类TableSet
class TableSet
{
public string TableSetName {get; set;}
public bool IsPopulated {get; set;}
}
现在在我的表单上,我想将列表框绑定到allTableSets,但只显示IsPopulated == true
到目前为止,我在表单上显示的内容只显示了allTableSets列表中的所有项目
public partial class MainForm : Form
{
DataBuilder dataBuilder = new DataBuilder();
{
this.populatedTableSetsListBox.DataSource = dataBuilder.allTableSets;
this.populatedTableSetsListBox.DisplayMember = "TableSetName";
}
}
我一直在寻找网络,但没有发现任何类似于我想要做的事情。非常感谢任何建议或替代方法。谢谢
答案 0 :(得分:0)
试试这个:在DataBuilder
课程中,有一个功能可根据您的过滤条件返回项目的子集。
例如,在DataBuilder
课程中:
public BindingList<TableSet> someTableSets()
{
BindingList<TableSet> someTableList = new BindingList<TableSet>();
foreach (TableSet TS in allTableSets)
if (TS.IsPopulated == true)
someTableList.Add(TS);
return someTableList;
}
然后,在MainForm
中,不要将DataSource
设置为allTableSets
,而是将其设置为等于someTableSets()
函数的结果:
this.populatedTableSetsListBox.DataSource = dataBuilder.someTableSets();