为什么我的列不会在winforms .NET数据网格中排序?

时间:2009-11-04 10:39:34

标签: winforms list datagrid sorting columnheader

我有一个WinForms .NET数据网格,其数据源是一个名为List<cLineItem>的行。 cLineItem是一个非常简单的类,具有单位(int),描述(字符串)和单位数量(浮点)等属性。

在代码中,我填充行列表,然后设置数据源:

dataGridView1.DataSource = lines;

这正确地填充了网格,但是,即使网格中的每个列都设置为可排序,当您单击列标题时,它也不会对行进行排序。

1 个答案:

答案 0 :(得分:6)

在DataGridView doesn't work by default中进行排序,除非您的源明确支持排序。您需要将数据源包装在SortableBindingList中。您可以使用此zip file中的PropertyComparer.cs和SortableBindingList.cs文件,并像这样使用它:

dataGridView1.DataSource = new SortableBindingList<cLineItem>(lines);