在DataGridview中可排序的列表/集合的要求

本文关键字:集合 列表 排序 DataGridview | 更新日期: 2023-09-27 18:00:40

当我点击列标题进行排序时,我的列表/集合需要什么才能在DataGridView中进行排序?

在DataGridview中可排序的列表/集合的要求

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

MSDN上有一篇关于数据绑定和DataGridView(包括排序)的文章,标题是"自定义数据绑定"。

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

一些现成的数据源确实支持排序,例如DataTable,但大多数不支持。

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

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

  • Windows窗体DataGridView控件中的列排序模式

  • 如何:在Windows窗体DataGridView控件中自定义排序

msdn论坛的

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

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