[英]Filtering DataGridView rows in .Net
我有一個顯示對象列表(而不是DataSet)的DataGridView。 有沒有簡單的方法來設置過濾器,因此DGV只顯示與過濾器匹配的行?
IList<T> log = ...;
dgv.DataSource = log;
你有LINQ嗎? 如果是這樣,一個選項是:
dgv.DataSource = log.Where(x=>x.IsActive && x.Type == 3).ToList();
但是,新的/刪除的行不會更新原始列表(對現有行的編輯很好)。
如果不是LINQ,你可以用List<T>.FindAll
做同樣的List<T>.FindAll
:
dgv.DataSource = log.FindAll(delegate (SomeType x) {
return x.IsActive && x.Type == 3;});
有IBindingListView.SupportsFiltering
/ IBindingListView.Filter
對,但沒有一個標准列表(包括BindingList<T>
)實現此功能。
你可以做Log.Where(filter)
如果我無法控制生成,那么我通常如何過濾綁定到DGV的列表中的項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.