簡體   English   中英

過濾.Net中的DataGridView行

[英]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.

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