我有一个包含许多属性的基类。其中包括带元数据的扩展属性列表。这是包含DisplayName,Description,Name,Type&的自定义类的List。值属性以帮助PropertyGrid。
所需的最终结果是PropertyGrid显示我的基类属性与上面列表中的扩展属性合并。我不希望PropertyGrid将我的列表显示为单个条目,而是将每个扩展属性与我的基类属性合并。本质上,PropertyGrid认为我的扩展属性列表是对象的第一类属性。
这可以使用Reflection或动态类型描述符吗?
答案 0 :(得分:1)
自定义TypeConverter应该相当简单。
这样的事情将是一个开始:
public override bool GetPropertiesSupported(ITypeDescriptorContext context)
{
return true;
}
public override PropertyDescriptorCollection GetProperties(
ITypeDescriptorContext context, object value, Attribute[] attributes)
{
return base.GetProperties(context, value, attributes).
Concat(TypeDescriptor.GetConverter(typeof(TheBaseType)).
GetProperties(context, value, attributes));
}