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
的经验,让我试试。!谢谢,我同意你的意见,刚刚编辑成公共版
,但我没有任何类型转换器
的经验,让我试试。!