簡體   English   中英

如何將DataGridView綁定到SubList

[英]How to bind DataGridView to SubList

我有一個帶有對象的Singleton BindingList列表。

我需要將此列表綁定到DataGridView。 我需要網格僅顯示具有特定屬性值的對象(Property IsEmpty,並且我只想顯示IsEmpty = false的對象)。

綁定完成后,我嘗試遍歷DataGridView行,並使用IsEmpty = false隱藏行。 這行得通,但是在某些情況下(例如對列進行排序),網格無法正常工作。

我的結論是,我需要具有原始列表的子列表,並具有原始列表中所有具有IsEmpty = true屬性的對象。

任何想法做到這一點的最佳方法是什么? (我需要在新列表中保留ListChanged事件,以使綁定正常工作)

綁定到網格之前 ,您需要過濾數據源。 最好的方法是調用linq的Where方法。

IEnumerable<yourType> initialSource = getYourSource();
yourGrid.DataSource = initialSource.Where(x => !x.IsEmpty).ToList();

這將使您的原始集合保持完整,並將網格僅綁定到與過濾器匹配的那些對象。

編輯

如果您不能使用linq,那么為什么不進行簡單循環呢?

List<yourType> filteredSource = new List<yourType>();
foreach(var item in initialSource)
    if (!item.isEmpty)
       filteredSource.Add(item);

yourGrid.DataSource = filteredSource;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM