Winform界面开发看过来!一招教你使用属性网格自定义编辑器

下载DevExpress v20.1完整版

40分钟教你入门DevExpress v20.1最新推出控件——甘特图,立即报名>>

DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅、美观且易于使用的应用程序。

遇到的问题

当使用DefaultEditors属性将类型的自定义编辑器添加到PropertyGrid时,除非该类型具有EditorAttribute(编辑器的实际类型似乎无关紧要),否则将禁用该编辑器。

在DevExpress版本18.1中,使用Color扩展ColorEditor正常工作;但在v19.2中,禁用了CustomColor的编辑器,启用了CustomColorAttr的编辑器。

解决方案

官方技术团队修复此错误后并更改了操作: PropertyGridControl - The Readonly attribute does not work with a custom editor。在之前没有考虑标准的DescriptorContext.IsValueEditable方法,这导致了错误的结果,现在在代码中正确使用此方法。

如果尝试将对象分配给标准PropertyGrid,则由于DescriptorContext.IsValueEditable方法返回false,因此将获得相同的结果。 反过来,此方法返回false,因为用于自定义类的类型转换器无法将字符串值转换为您的类型。 ColorEditor使用可以执行此类转换的ColorConverter。

因此,要启用对自定义类的编辑,您需要应用支持从字符串值到类型转换的类型转换器。


DevExpress技术交流群2:775869749      欢迎一起进群讨论

原文地址:https://www.cnblogs.com/AABBbaby/p/13577494.html