devexpress如何在PropertyGridControl中直接编辑集合成员

引言

PropertyGridControl默认使用PropertyGrid的集合编辑器,如果你要编辑集合中的项,必须点击按钮打开集合编辑器

如下图所示:

default collection editor

从图中不难发现,List是可以直接编辑Capacity属性的,那可以直接把Course对象变成List的成员脱离集合编辑器来编辑吗?

解决方案

答案当然是可以的,通过观察可以发现,PropertyGridControl可展开编辑的就是Object,所以只需把集合中的成员映射为List中的Object即可,PropertyGrid已经有相应的解决方案了。

使用中间类型CourseCollection然后实现ICustomTypeDescriptor接口和PropertyDescriptor即可完成此需求,完整代码在文末

expand collection as property

假如你想要自定义类型名称可继承ExpandableObjectConverter

custom property name

参考资料


devexpress如何在PropertyGridControl中直接编辑集合成员
http://blog.wangshuai.app/2021-09-26-devexpress如何在PropertyGridControl中直接编辑集合成员 /
作者
王帅
发布于
2021年9月26日
许可协议