是否可以在PropertyGrid中查看公共属性以外的成员? documentation表示“SelectedObject的所有公共属性都将默认显示在PropertyGrid 中”。 “默认情况下”似乎意味着可以查看例如某些配置后的字段或非公共属性。
请注意,我实际上并不想显示公共属性以外的任何内容,我只需知道它支持的内容。
答案 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