PropertyGrid中的斜体文本

时间:2009-04-13 19:03:33

标签: c# propertygrid

我正在使用PropertyGrid来显示通过ICustomTypeDescriptor实现公开的自定义属性。

我的对象是在树结构中设置的,每个属性的值都在每个对象中设置或从父对象继承。在PropertyGrid中,我想直观地向用户显示在所选对象中设置的属性值,以及从父对象继承的属性值。

现在我将每个属性显示为两类。一组显示实际对象中设置的值,如果未设置,则显示空白字段。另一组显示分配给对象的属性值,这些属性值在对象中设置,或者如果未在对象中设置则继承。

我想将这两个组合成一个购买,在常规文本中显示集合属性,并以斜体文本继承值。但是,似乎没有任何方法可以通过ICustomTypeDescriptor.GetProperties()来实现。而且我无法轻松访问PropertyGrid的属性,因为它们是在程序运行时创建的。

1 个答案:

答案 0 :(得分:3)

你不能做斜体 - 但你可以做大胆;大胆的行为取决于PropertyDescriptor的{​​{1}};您可以通过各种ShouldSerializeValue技巧(PropertyDescriptorSystem.ComponentModelICustomTypeDescriptor包装TypeConverter并提供您自己的TypeDescriptionProvider

或者,有类似的网格有更多选项,例如by VisualHint - 请参阅该页面上的“属性自定义”。