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

标签 winforms list datagrid sorting columnheader

我有一个 WinForms .NET 数据网格,其数据源是 List<cLineItem>称为线。 cLineItem 是一个非常简单的类,具有单位 (int)、描述 (string) 和单位数量 (float) 等属性。

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

dataGridView1.DataSource = lines;

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

最佳答案

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

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

关于winforms - 为什么我的列不会在 winforms .NET 数据网格中排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1672984/

相关文章:

C# 在弹出窗口中显示进度条

c# - 如何取消PC的关机事件?

Java通过替换特殊字符来转换一组字符串

python - 在列表中第一个传递条件的元素后面添加一个元素

wpf - 为什么 ItemsPresenter 会覆盖我的 DataGrid 的前景样式?

c# - 如何以编程方式选择 WPF DataGrid 中的行或单元格?

vb.net - 无法从 LINQ 查询中提取字段

javascript - Windows 窗体 Web 浏览器控件和 Javascript 更改的 DOM

python - 将 IP 范围扩展至列表

c# - 如何对 WPF DataGrid 中除第一列之外的所有列进行排序