winform datagridview 列排序

Posted

技术标签:

【中文标题】winform datagridview 列排序【英文标题】:winform datagridview column sort 【发布时间】:2021-11-18 01:44:41 【问题描述】:

我正在尝试对标准 Windows 表单数据网格视图中的列进行排序。

Visual Studio 2015 目标 .net 框架:4.5.2

我已将 AllowUsersToOrderColumns 设置为 True。所有列的 SortMode 都设置为 Automatic。我的数据源是对象的 BindingList。所有列都设置了 DataPropertyName。网格加载并显示正常。我没有看到向上/向下箭头,单击列标题什么也不做。我必须实现一些代码吗?我认为这是默认行为。请问我错过了什么?

谢谢。

【问题讨论】:

BindingList 类不支持排序。您必须从中派生并实施排序。请参阅docs。 ...或者使用一个DataTable,它已经实现了所有的排序/过滤/通知/选择开箱即用的东西。使用一个简单的 BindingList,您还需要在您的类对象中实现INotifyPropertyChanged(最终还有嵌套的自定义类型)。或者使用 ORM / mini-ORM。 -- 如果不是排序要求,请更新您的 .Net Framework 版本,4.5.2 已经很旧了。 【参考方案1】:

以上两个答案都是正确的。我还发现另一篇文章指向将列表转换为“SortableBindingList”的代码。当然,您可以根据需要更改班级名称。查看标记的答案

Sortable List

【讨论】:

以上是关于winform datagridview 列排序的主要内容,如果未能解决你的问题,请参考以下文章

winform datagridview 设置交叉色后,再改变某列背景色问题

C# winform datagridview 列顺序的问题?

winform设置datagridview某一列只能输入数字

中止排序datagridview

winform 里datagridview的标题列变黑

winform中datagridview怎么把表头分为两列