Winforms 筛选WinForm DataGridView
我有一个DataGridView控件,它绑定到自定义类型的列表(继承BindingList)。我希望能够基于简单的列值(bool类型)筛选行。最终,功能目标是能够将项目标记为已删除,但只是在数据源中将其标记为已删除,而不是将其删除。只需将其从网格中删除,而不是从数据源中删除即可Winforms 筛选WinForm DataGridView,winforms,datagridview,filter,Winforms,Datagridview,Filter,我有一个DataGridView控件,它绑定到自定义类型的列表(继承BindingList)。我希望能够基于简单的列值(bool类型)筛选行。最终,功能目标是能够将项目标记为已删除,但只是在数据源中将其标记为已删除,而不是将其删除。只需将其从网格中删除,而不是从数据源中删除即可 有什么想法吗?您可以使用LINQ过滤数据,然后创建一个新的BindingList并将其重新分配给dataGridView 假设person类中有一个名为的标志将被删除: dataGridView1.DataSource
有什么想法吗?您可以使用LINQ过滤数据,然后创建一个新的BindingList并将其重新分配给dataGridView 假设person类中有一个名为
的标志将被删除
:
dataGridView1.DataSource = new SortableBindingList<Person>
(SampleData.Where(p => !p.WillBeDeleted).ToList());
dataGridView1.DataSource=新的SortableBindingList
(SampleData.Where(p=>!p.WillBeDeleted.ToList());
祝你好运 为了让它更清楚,我用这段代码创建了SortableBindingList(我把它翻译成VB.NET) 然后,我有自己的集合对象,其中包含属性和实体的SortableBindingList 作为新SP1ZSortableBindingList的私有mListeNotes(SP5004zNoteVolutiveEntite)
这就是我绑定网格的地方,所以我现在可以排序了。因此,我需要它保持该类型,而不是泛型列表。注意,我曾尝试使用Linq将DataGridView绑定到数据的子集,但它没有返回相同的类型(我的自定义SortableBindingList类型),而且我无法强制转换它。他不会让我……你能添加你的绑定代码和数据源吗?以下是我获取SortableBindingList代码的文章: