I\'m trying to get an overall understanding of how you use ICustomTypeDescriptor, TypeDescriptionProvider, TypeConverter, and UITypeEditor to change how a PropertyGrid displ
Tweaks:
TypeDescriptionProvider
TypeDescriptor.AddProviderITypedListTypeConverter
PropertyGrid, this is also the mechanism used to obtain metadata; note that ExpandableObjectConverter simply delegates to TypeDescriptor.GetProperties, but this is not always the caseUITypeEditor
PropertyGridAdditional:
IExtenderProvider - appends properties; this may be what you were getting confused with TypeDescriptionProviderITypedList - broadly the twin of ICustomTypeDescriptor, but for lists; can be avoided by use of TypeDescriptionProvider and a non-object indexer on any IList, i.e. public T this[int index] {get;}IListSource - provides indirection between a data-source and the data; for example, a DataTable implements IListSource, returning DefaultView when requested