是否可以为类的特定属性隐藏一些枚举值?

问题描述 投票:4回答:1

我有枚举例如说:

public enum Color
{
  red,
  green,
  blue
}

并且有两个班级。具有enum。]]属性的

public class ClassA
{
    public Color Color{get;set;}
}

public class ClassB
{
    [InvisibleFlag(Color.red)]  // I want something like that
    public Color Color{get;set;}
}

现在在Windows Forms Designer中,我只想仅从ClassB的Color枚举中隐藏红色标记。

我知道我可以创建一个单独的枚举。但是为什么要重复值呢?我仅举了一个简单的例子。

我想可能会对上级可以帮助我的事情有所帮助。

描述符API。我讨厌;(

也许像TypeDescriptor.AddAttributes(object, new BrowsableAttribute(false));

answer在这种情况下将不起作用。我不想将Browsable属性应用于枚举标志,因为它在所有类的属性网格中都隐藏了该标志。我希望能够仅对特定类而不是对所有类隐藏特定的枚举值。

例如,我有一个枚举:public enum Color {red,green,blue}并有两个类。具有枚举的属性。公共类ClassA {public Color Color {get; set;}} public ...

c# .net winforms windows-forms-designer propertygrid
1个回答
5
投票

帮助您显示PropertyGrid中的枚举值的类是EnumConverter,而负责列出EnumConverter中的枚举值的方法。

© www.soinside.com 2019 - 2024. All rights reserved.