C#中的Datagridview-列的自定义排序

本文关键字:自定义 排序 中的 Datagridview- | 更新日期: 2023-09-27 18:29:20

我在C#中有一个数据绑定(Datatable)数据网格视图。数据表是用Load(IDataReader)方法填充的。用户可以通过单击标题对DGV的列进行排序。现在我有一列(最初在数据库中是一个文本列),我想为它实现一个自定义排序方法。

我知道MSDN文章中描述的数据网格视图自定义排序的可能性,由于SortCompare事件对数据绑定网格没有用处,我想运行另一条路径:

我想实现一个简单的自己的数据类型,实现IComparable接口。然后,我将数据表中相关列的数据类型设置为这个新的数据类型。如果用户单击标头,就会调用数据类型的compare方法。我喜欢这种方法,因为它也可以用于其他数据网格视图/数据表。

到目前为止,这可能吗?还是我误解了什么?我现在的问题是如何告诉数据读取器将数据库中的文本值转换为我的新数据类型,并用这种数据类型的对象填充数据表。

C#中的Datagridview-列的自定义排序

请参阅:使用业务对象的DataGridView列排序

或:http://www.timvw.be/2007/02/22/presenting-the-sortablebindinglistt/http://www.timvw.be/2008/08/02/presenting-the-sortablebindinglistt-take-two/

他们中的任何一个都会把你带到你想去的地方。你的想法基本上是正确的,只是你也需要IComparator,光有IComparable是不够的。