我有一个DataGridView
绑定到通用的BindingList
. 我希望能够对type 的列应用排序和搜索DataGridViewImageColumn
。基本思想是将名称存储到图像Tag
中,用于排序和搜索。我怎样才能做到这一点?
似乎有几种方法可以做到:
- 创建一个继承
System.Drawing.Image
并使其具有可比性的新类。Image
是一个抽象类,如果我从它(以及IComparable
接口)继承,我会遇到这个错误消息:类型'System.Drawing.Image'没有定义构造函数。这里有什么问题?Imageabstract
不是一个sealed
类,但它不允许我继承它!
ApplySortCore
使用继承的类的受保护的覆盖方法BindingList<T>
。这个方法是这样的:
class MyBindingList<T> : BindingList<T> { ... protected override void ApplySortCore(PropertyDescriptor prop, ListSortDirection direction) { if (prop.PropertyType.Equals(typeof(Image))) { /* I have no idea! */ } } }
- 创建一个新的
DataGridViewColumn
继承自DataGridViewImageColumn
.- 这似乎并不容易,如果其他想法无法使用,可以使用。
提前致谢