我有:
class Foo1
{
private string name1;
[CategoryAttribute("Category1")]
public string Name1
{
get { return name1; }
set { name1 = value; }
}
}
和
class Foo2
{
private string name2;
[CategoryAttribute("Category2")]
public string Name2
{
get { return name2; }
set { name2 = value; }
}
}
如果我从Foo1派生Foo2并在PropertyGrid中将Foo2设置为SelectedObject,我将列出Foo1的成员,但如果我在Foo2中有Foo1成员,则不会列出Foo1成员。有没有办法在第二种情况下在PropertyGrid中列出Foo1的成员?
谢谢!
答案 0 :(得分:3)
尝试为Foo2指定一个typeconverter。现在Foo2的成员应该列在Foo1对象的属性中。
[TypeConverter(typeof(ExpandableObjectConverter))]
class Foo2
{
private string name2;
[CategoryAttribute("Category2")]
public string Name2
{
get { return name2; }
set { name2 = value; }
}
}
答案 1 :(得分:1)
你需要使用typeconverter来实现这一目标。请看一下:Getting the Most Out of the .NET Framework PropertyGrid Control在支持自定义类型
部分