devexpress如何使用PropertyGridControl编辑字典(Dictionary)

add/remove dictionary item in devexpress PropertyGridControl

Posted by 王帅 on September 24, 2021

引言

PropertyGridControl默认使用PropertyGrid的集合编辑器,对于一个Dictionary对象是不能添加和删除的

如下图所示:

image-20210924163519947

要想实现添加/删除功能,需要继承UITypeEditor实现一个自定义编辑器

解决方案

Google之后发现已经有人实现了这一功能:GenericDictUiTypeEditor

由于PropertyGridControl继承自PropertyGrid,因此PropertyGridControl的大部分需求可参照PropertyGrid实现

参考Github为项目添加Nuget引用然后使用EditorAttribute(typeof(GenericDictionaryEditor<string,string>), typeof(System.Drawing.Design.UITypeEditor))即有增删功能

image-20210924165415825

参考资料