我有一个 WinForms .NET 数据网格,其数据源是被List<cLineItem>
调用的行。cLineItem 是一个非常简单的类,具有单位(int)、描述(字符串)和单位数量(浮点数)等属性。
在代码中,我填充行列表,然后设置数据源:
dataGridView1.DataSource = lines;
这会正确填充网格,但是,即使网格中的每一列都设置为可排序,当您单击列标题时,它也不会对行进行排序。
我有一个 WinForms .NET 数据网格,其数据源是被List<cLineItem>
调用的行。cLineItem 是一个非常简单的类,具有单位(int)、描述(字符串)和单位数量(浮点数)等属性。
在代码中,我填充行列表,然后设置数据源:
dataGridView1.DataSource = lines;
这会正确填充网格,但是,即使网格中的每一列都设置为可排序,当您单击列标题时,它也不会对行进行排序。
默认情况下, DataGridView 中的排序不起作用,除非您的源明确支持排序。您需要将数据源包装在SortableBindingList中。您可以使用此zip 文件中的 PropertyComparer.cs 和 SortableBindingList.cs 文件,并像这样使用它:
dataGridView1.DataSource = new SortableBindingList<cLineItem>(lines);