See PropertyDescriptor instead of PropertyInfo.
They can be provided by overriding two property methods in the TypeConverter derived class.
With a little ingenuity, you can pretty much get it all done.
I am currently using this to provide a flat list of properties for various cultures and values ββfor translation purposes and pass this to the PropertyGrid, while the class structure looks like this:
class TagName { Culture culture; string content; } [TypeConverter(typeof(TagConverter))] class Tag { TagName[] tagNames; }
In PropertyDescriptor, you have complete control over how values ββare set and obtained through a specific instance of PropertyDescriptor.
source share