Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C实现属性网格中的子类别元素#_C#_Propertygrid - Fatal编程技术网

C# 如何使用C实现属性网格中的子类别元素#

C# 如何使用C实现属性网格中的子类别元素#,c#,propertygrid,C#,Propertygrid,是否有任何方法可以实现属性网格中的子类别元素 我试过下面的代码,但似乎不起作用 public class test { private Min2Max range; [Category("Product")] public Min2Max Range { get { return range; } set { range = value; } } class Min2Max { priv

是否有任何方法可以实现
属性网格中的
子类别
元素

我试过下面的代码,但似乎不起作用

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; }
        }
    }
}

如果您有任何建议或帮助,我们将不胜感激,非常感谢:)

您以红色显示的内容不是子类别,而是具有其他子属性的属性。问题是您的
Min2Max
类和范围属性是私有的,因此网格不会映射它们。如果您解决了这个问题,您还需要在其中一个上附加一个“显示”属性的
TypeConverter
。至少,
ExpandableObjectConverter
可以做到这一点。如果需要启用编辑范围本身(而不是其子属性),则转换器也必须处理该问题


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

红色显示的不是一种子类别,而是具有其他子属性的属性。问题是您的
Min2Max
类和范围属性是私有的,因此网格不会映射它们。如果您解决了这个问题,您还需要在其中一个上附加一个“显示”属性的
TypeConverter
。至少,
ExpandableObjectConverter
可以做到这一点。如果需要启用编辑范围本身(而不是其子属性),则转换器也必须处理该问题


如果你更喜欢一个真正的子类别,那么西蒙是对的。微软PropertyGrid的股票是不可能的,你必须依赖第三方PropertyGrid。

可能重复我不这么认为,我使用嵌套类,而另一个使用两个不同的类。你不能。“子类别”的概念在属性网格中根本不存在。@Simon,谢谢,我明白了,有什么办法可以做到这一点吗?没有。NET属性网格不能像那样扩展。可能重复我不这么认为,我使用的是嵌套类,而另一个使用两个不同的类。你不能。“子类别”的概念在属性网格中根本不存在。@Simon,谢谢,我明白了,有什么办法可以做到这一点吗?没有。.NET属性网格不是那样可扩展的。谢谢,我同意你的意见,刚刚编辑成
Public
,但是我没有任何
TypeConverter
的经验,让我试试。!谢谢,我同意你的意见,刚刚编辑成
公共版
,但我没有任何
类型转换器
的经验,让我试试。!