[英]Binding Listbox to bindinglist, filter on item property
我正在使用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";
}
}
我一直在網上瀏覽,但沒有找到任何與我嘗試做的事情相似的事情。任何建議或替代方法都將不勝感激。謝謝
嘗試以下操作:在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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.