0

我正在开发一个 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";
    }
}

我一直在网上寻找,但没有发现任何与我正在尝试做的类似的事情。非常感谢任何建议或替代方法。谢谢

4

1 回答 1

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,而不是设置DataSourceto allTableSets,将其设置为等于someTableSets()函数的结果:

    this.populatedTableSetsListBox.DataSource = dataBuilder.someTableSets();
于 2013-02-11T21:11:18.103 回答