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 欢迎一起进群讨论