Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 筛选WinForm DataGridView_Winforms_Datagridview_Filter - Fatal编程技术网

Winforms 筛选WinForm DataGridView

Winforms 筛选WinForm DataGridView,winforms,datagridview,filter,Winforms,Datagridview,Filter,我有一个DataGridView控件,它绑定到自定义类型的列表(继承BindingList)。我希望能够基于简单的列值(bool类型)筛选行。最终,功能目标是能够将项目标记为已删除,但只是在数据源中将其标记为已删除,而不是将其删除。只需将其从网格中删除,而不是从数据源中删除即可 有什么想法吗?您可以使用LINQ过滤数据,然后创建一个新的BindingList并将其重新分配给dataGridView 假设person类中有一个名为的标志将被删除: dataGridView1.DataSource

我有一个DataGridView控件,它绑定到自定义类型的列表(继承BindingList)。我希望能够基于简单的列值(bool类型)筛选行。最终,功能目标是能够将项目标记为已删除,但只是在数据源中将其标记为已删除,而不是将其删除。只需将其从网格中删除,而不是从数据源中删除即可


有什么想法吗?

您可以使用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代码的文章: