是否可以在 PropertyGrid 中查看公共属性以外的成员?文档说“默认情况下,SelectedObject的所有公共属性都将显示在 PropertyGrid中”。“默认情况下”似乎暗示在某些配置之后可以查看例如字段或非公共属性。
请注意,我实际上不想显示公共属性以外的任何内容,我只需要知道它支持什么。
所以基本上你想要控制属性网格中显示的内容。是的,这是可能的。
一个对象可以通过实现一个接口来提供关于它自己的自定义信息ICustomTypeDescriptor
。如果未实现,TypeDescriptor
则属性网格将使用静态。
所以我们需要实现ICustomTypeDescriptor。
属性信息将由接口方法GetProperties()返回。此方法返回一个 PropertyDescriptorCollection 类型的对象。
编辑:您应该查看 PropertyGrid.BrowsableAttributes 以获得更简单的解决方案。以编程方式隐藏 PropertyGrid 中的字段
一些有用的链接 -
.NET 很重要:ICustomTypeDescriptor,第 1 部分
http://www.codeproject.com/Articles/4448/Customized-display-of-collection-data-in-a-Propert