如何创建可比较的图像
我有一个DataGridView
,它已绑定到通用BindingList
。我希望能够对 DataGridViewImageColumn
类型的列应用排序和搜索。 基本思想是将名称存储到图像标签
中,并用于排序和搜索。我该如何做到这一点?
似乎有几种方法可以做到这一点:
- 创建一个继承 System.Drawing.Image 的新类并使其具有可比性。
Image
是一个抽象类,如果我继承它(以及IComparable
接口),我会遇到以下错误消息:The type 'System. Drawing.Image' 没有定义构造函数。 这里有什么问题吗? Image 是一个抽象
,而不是一个密封
类,但它不允许我继承它!
-
使用受保护的覆盖
BindingList
继承类的 >ApplySortCore 方法。这个方法是这样的:
class MyBindingList
; :BindingList { ... protected override void ApplySortCore(PropertyDescriptor prop, ListSortDirection方向) { if (prop.PropertyType.Equals(typeof(Image))) { /* 我不知道! */ } } }
- 创建一个继承自
DataGridViewImageColumn
的新DataGridViewColumn
。- 这似乎并不容易,如果其他想法无法使用,可以使用。
提前致谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
创建一个封装 System.Drawing 的类 (X)。 Image + ImageAlias 字符串属性。将您的图像列绑定到 X.Image 并通过 X.ImageAlias 进行搜索。
抱歉,我手上没有编码工具来提供示例,但这是一个基本想法。
希望这有帮助。
Create a class (X) that incapsulates System.Drawing. Image + ImageAlias string property. Bind your image column to X.Image and search over X.ImageAlias.
Sorry but don't have a coding tool on my hands to provide an example, but this is a basic idea.
Hope this helps.
我找到路了!
MyBindingList
MyDataObject
表单
I found the way!
MyBindingList
MyDataObject
Form