如何使用C#在Property Grid中实现子类别元素

时间:2013-08-09 09:45:13

标签: c# propertygrid

有没有办法在sub category

中实施Property Grid元素

enter image description here

我已经尝试了以下代码,但它似乎无法正常工作

public class test
{
    private Min2Max range;

    [Category("Product")]
    public Min2Max Range
    {
        get { return range; }
        set { range = value; }
    }

    class Min2Max
    {
        private double min = 0.1;
        private double max = 99.9;

        public double Min
        {
            get { return min; }
            set { min = value; }
        }

        public double Max
        {
            get { return max; }
            set { max = value; }
        }
    }
}

任何建议或帮助将不胜感激,非常感谢.. :))

1 个答案:

答案 0 :(得分:1)

您在红色中显示的不是某种子类别,而是具有其他子属性的属性。问题是您的Min2Max类和Range属性是私有的,因此网格不会映射它们。如果你解决了这个问题,你还需要在其中一个附加TypeConverter来“显示”这些属性。至少,ExpandableObjectConverter可以做到。如果你需要自己编辑Range(而不是它的子属性),那么你的转换器也必须要处理它。

如果你更喜欢真正的子类别,那么西蒙是对的。使用股票Microsoft PropertyGrid是不可能的,你将不得不依赖第三方PropertyGrid。