我有一个绑定到自定义类型列表(继承BindingList)的DataGridView控件。我希望能够根据简单的列值(bool类型)过滤行。最终,功能目标是能够将项目标记为已删除,但只是在DataSource中将其标记为已删除,而不是将其删除。 Juste将其从网格中删除,而不是从DataSource中删除。
有什么想法吗?
答案 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)
这就是我绑定网格的原因所以我现在可以排序了。所以我需要它保留那种类型,而不是通用列表。