我想要全面了解如何使用ICustomTypeDescriptor,TypeDescriptionProvider,TypeConverter和UITypeEditor来更改PropertyGrid显示和与对象接口的方式。 有人能告诉我这是对的吗,还是我错过了一些重要的概念或观点? 我真的只是想明白为什么和什么时候你会使用每个类。 ICustomTypeDescriptor 在类中全部实现此接口将覆盖类的本地属性,并将其replace为由ICustomTypeDescriptor.GetProperties()返回的PropertyDescriptors。 TypeDescriptionProvider 用于扩展一个类的现有属性 TypeDescriptionProvider通过TypeDescriptionProvider属性附加到类 TypeDescriptionProvider的GetTypeDescriptor()方法返回一个ICustomTypeDescriptor以附加到该types的现有属性。 PropertyGrid将显示通过Reflectionfind的类的属性,以及通过TypeDescriptionProvider添加到类的属性 types转换器 types之间转换 就使用PropetyGrid而言,可以在属性网格中显示/编辑复杂types和基本types之间进行转换。 TypeConverter的GetStandard值方法也可以用来显示propertygrid中可能值的列表 UITypeEditor的 定义一个用于处理复杂types属性的自定义编辑器。 通过属性关联属性。 所以ICustomTypeDescriptor是一个TypeDescription提供程序,用于添加/更改/replace对象的整个属性。 TypeConverter和UITypeEditor应用于各个属性,并控制这些特定属性的接口方式。