У вас есть в наличии LINQ? Если это так, один из вариантов:
dgv.DataSource = log.Where(x=>x.IsActive && x.Type == 3).ToList();
Однако новые / удаленные строки не будут обновлять исходный список (редактирование существующих строк возможно).
Если не LINQ, вы можете сделать то же самое с List<T>.FindAll
:
dgv.DataSource = log.FindAll(delegate (SomeType x) {
return x.IsActive && x.Type == 3;});
Существует пара IBindingListView.SupportsFiltering
/ IBindingListView.Filter
, но ни один из стандартных списков (включая BindingList<T>
) не реализует эту функцию.