过滤WinForm DataGridView

时间:2010-11-10 15:07:57

标签: winforms datagridview filter

我有一个绑定到自定义类型列表(继承BindingList)的DataGridView控件。我希望能够根据简单的列值(bool类型)过滤行。最终,功能目标是能够将项目标记为已删除,但只是在DataSource中将其标记为已删除,而不是将其删除。 Juste将其从网格中删除,而不是从DataSource中删除。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您可以使用LINQ过滤数据,然后创建一个新的BindingList并将其重新分配给dataGridView。

假设您在名为WillBeDeleted的人员类中有一个标志:

dataGridView1.DataSource = new SortableBindingList<Person>
                           (SampleData.Where(p => !p.WillBeDeleted).ToList());
祝你好运!

答案 1 :(得分:0)

为了更清楚,我使用此代码创建SortableBindingList http://www.timvw.be/presenting-the-sortablebindinglistt-take-two/(我将其翻译为VB.NET)

然后,我有自己的集合对象,其中包含我的实体的属性和SortableBindingList。

  

私有mListeNotes为新的SP1ZSortableBindingList(SP5004ZNoteEvolutiveEntite)

这就是我绑定网格的原因所以我现在可以排序了。所以我需要它保留那种类型,而不是通用列表。