我有一个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.- 这似乎并不容易,如果其他想法无法使用,可以使用。
提前致谢