将List <myclass> Property转换为c#</myclass>中的PropertyGrid兼容属性条目

时间:2009-07-28 16:54:07

标签: c# propertygrid

我有一个包含许多属性的基类。其中包括带元数据的扩展属性列表。这是包含DisplayName,Description,Name,Type&amp;的自定义类的List。值属性以帮助PropertyGrid。

所需的最终结果是PropertyGrid显示我的基类属性与上面列表中的扩展属性合并。我不希望PropertyGrid将我的列表显示为单个条目,而是将每个扩展属性与我的基类属性合并。本质上,PropertyGrid认为我的扩展属性列表是对象的第一类属性。

这可以使用Reflection或动态类型描述符吗?

1 个答案:

答案 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));
}