我遇到了一个问题,使用绑定到iBindingListView
实现(第三方dll)的DataGridView
附加到大集合。.net值类使用IComparable排序
我的集合类型中有一个属性,名为MyDateTime
,它是一个类似于DateTime的值类,但也包含一些遗留代码。
该结构实现了iComparable
,iComparable<T>
和iEquatable<T>
。
我遇到的问题是这样的:
当我应用排序的iBindingListView
上MyDateTimeColumn
,它总是使用非通用iComparer
,造成成千上万的不必要的装箱和拆箱。
当我使用DGV提供的自动排序功能时,它会对列进行字符串排序。只保留这一列“自动”而不是编程仅用于此列是不可接受的。
当我删除非通用iComparer时,通用的仍然没有使用,它只是在.ToString()上进行字符串比较。
我错过了什么吗?为什么我的通用比较器不是bieng调用的?
“value class”,你的意思是'struct'?或一个不可变的“类”? – 2010-04-21 14:51:03
@Marc:因为他提到了拳击,听起来像'struct'。 – 2010-04-21 14:52:52
@亚当 - 是的,我只是试图明确。 – 2010-04-21 14:56:07