在PropertyGrid中显示/隐藏子属性

时间:2014-02-13 17:31:27

标签: .net winforms propertygrid

是否可以在Windows窗体PropertyGrid控件中添加/删除属性,具体取决于另一个布尔属性的值?

例如,假设所选对象具有布尔ShowTitle属性。仅当TitleFont设置为true时,我才需要显示TitleColorShowTitle属性。此外,如果TitleFontTitleColor属性是ShowTitle属性的子级,那就太棒了。

如果无法做到这一点,那么除了创建自定义编辑器之外,我还有哪些其他选项?

更新

根据我的理解,似乎PropertyGrid允许我们这样做......

Expandable property

...但不是这个(图片下面只是一个模型)......

Dropdown (mock-up)

1 个答案:

答案 0 :(得分:1)

你可以做的是重新使用我在这个问题的答案中描述的DynamicTypeDescriptor类,在SO:PropertyGrid Browsable not found for entity framework created property, how to find it?

在同一个实用程序类中还有另一个好的基础:Optimize class for PropertyGrid