为在propertygrid运行时生成的枚举属性提供值

时间:2013-08-15 08:39:22

标签: c# reflection properties propertygrid

我需要在运行时添加枚举属性以显示在proertygrid中,这引导我到这个页面

Properties generated at runtime (PropertyGrid.SelectedObject)

我按照自己的意愿完成了这项工作。我用静态枚举测试了这个,但我还需要在运行时为枚举提供用户定义的值。我明白我需要改变

 public override StandardValuesCollection
             GetStandardValues(ITypeDescriptorContext context)

方法,但问题是context.instance属性显示了上述stackoverflow页面中描述的包内的所有属性。因此,如果我有5个属性,则instance属性将具有5个属性的数组;我该如何找出哪一个是我应该捣乱的?除了在GetStandardValues()方法中填充它之外,还有其他方法可以为枚举提供值吗?

欢呼声, ES

1 个答案:

答案 0 :(得分:0)

ITypeDescriptorContext对象具有PropertyDescriptor.Name属性

context.PropertyDescriptor.Name

这将显示元素。

-ES