C# 转换列表<;MyClass>;属性转换为c中与PropertyGrid兼容的属性项#
我有一个具有许多属性的基类。其中包括一个包含元数据的扩展属性列表。这是一个自定义类的列表,其中包含DisplayName、Description、Name、Type和Value属性以帮助PropertyGrid 期望的最终结果是PropertyGrid,它显示了与上面列表中的扩展属性合并的基类属性。我不希望PropertyGrid将我的列表显示为单个条目,而是将每个扩展属性与我的基类属性合并。本质上,PropertyGrid相信我的扩展属性列表是对象的第一类属性C# 转换列表<;MyClass>;属性转换为c中与PropertyGrid兼容的属性项#,c#,propertygrid,C#,Propertygrid,我有一个具有许多属性的基类。其中包括一个包含元数据的扩展属性列表。这是一个自定义类的列表,其中包含DisplayName、Description、Name、Type和Value属性以帮助PropertyGrid 期望的最终结果是PropertyGrid,它显示了与上面列表中的扩展属性合并的基类属性。我不希望PropertyGrid将我的列表显示为单个条目,而是将每个扩展属性与我的基类属性合并。本质上,PropertyGrid相信我的扩展属性列表是对象的第一类属性 这可以使用反射或动态类型描述符吗
这可以使用反射或动态类型描述符吗?使用自定义类型转换器应该相当简单 像这样的事情将是一个开始:
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));
}
谢谢你,莱皮,你能把这个放到上下文中吗。i、 这是我的ExtendedProperty类的自定义类型转换器还是我的基类的自定义类型转换器?此外,对于PropertyDescriptorCollection(Targeted framework=3.5),intellisense中不会出现Concat。这将是一个应用于派生类的类型转换器。”Concat'是一个伪函数,您需要编写它:)