可以在DataGridview中对列表/集合进行排序的要求

时间:2011-06-30 08:04:57

标签: c# winforms sorting datagridview datasource

我的列表/集合有哪些要求,以便在单击列标题进行排序时可以在DataGridView中对其进行排序?

3 个答案:

答案 0 :(得分:0)

您需要深入了解MSDN文档。您可以根据需要使用自动/自定义排序。

答案 1 :(得分:0)

来自msdn论坛的

:当你点击数据绑定DataGridView中的列标题时,它会调用IBindingList上的ApplySort方法。您可以覆盖BindingSource上的ApplySort方法并在那里执行自定义操作。

因此我的列表/集合需要一个IBindingList impl。

答案 2 :(得分:0)

DataGridView上此类信息的最佳位置是MSDN。对于更加模糊的问题,下一个调用端口是由Data RridView的程序管理器Mark Rideout编写的优秀DataGridView FAQ

在MSDN上有一篇关于数据绑定和DataGridView(包括排序)的文章非常全面,标题为Custom Data Binding

基本上,当数据源绑定到DataGridView时,只要源实现了IBindingList并且具有支持代码用于处理排序的接口方法(例如SupportsSorting应该返回true),就会自动将数据源绑定到DataGridView排序。

一些开箱即用的数据源确实支持排序 - 例如DataTable,但大多数都没有。

特别是BindingList,虽然它实现了IBindingList但不支持排序。要使对象列表可排序,您需要创建自己的可排序列表。在Web上有几个这样的例子,使用从BindingList派生的类。搜索SortableBindingList以找到一个(实际上我在上面引用的数据绑定文章中有一个例子)。