是否可以在PropertyGrid中查看公共属性以外的成员?

时间:2012-07-12 18:21:59

标签: c# winforms f#

是否可以在PropertyGrid中查看公共属性以外的成员? documentation表示“SelectedObject的所有公共属性都将默认显示在PropertyGrid ”。 “默认情况下”似乎意味着可以查看例如某些配置后的字段或非公共属性。

请注意,我实际上并不想显示公共属性以外的任何内容,我只需知道它支持的内容。

1 个答案:

答案 0 :(得分:3)

所以基本上你想要控制属性网格中显示的内容。是的,这是可能的。

对象可以通过实现接口ICustomTypeDescriptor来提供有关自身的自定义信息。如果未实现,则属性网格将使用静态TypeDescriptor

所以我们需要实施ICustomTypeDescriptor

属性信息将由接口方法GetProperties()返回。此方法返回PropertyDescriptorCollection类型的对象。

编辑:您应该查看PropertyGrid.BrowsableAttributes以获得更简单的解决方案。 Programatically Hide Field in PropertyGrid

一些有用的链接 -

.NET Matters: ICustomTypeDescriptor, Part 1

http://www.codeproject.com/Articles/4448/Customized-display-of-collection-data-in-a-Propert