PropertyGrid不列出成员类成员

时间:2011-02-07 14:26:22

标签: c# propertygrid

我有:


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的成员?

谢谢!

2 个答案:

答案 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支持自定义类型

部分