我使用的PropertyGrid表明通过ICustomTypeDescriptor实施暴露自定义属性。

我的对象是设置在树结构中和值的每个属性中的每个对象被设置或从父对象继承。 PropertyGrid中的我想在视觉上表现出什么样的属性值是在选定的对象设置,并从父对象继承用户。

现在我显示的每个属性是两大类。一组显示了该值设置为实际的对象,一个空白的领域,如果它没有设置。另一组示出了分配到在所述对象任一组,或者如果没有在对象设定继承对象的属性值。

我想这两个组结合成一个买表示常规文本的属性集,并在斜体文本继承的值。然而,似乎没有什么办法做到这一点通过ICustomTypeDescriptor.GetProperties()。我不容易接触到PropertyGrid中的属性,因为他们得到的程序运行时创建的。

有帮助吗?

解决方案

您不能做斜体 - 但你可以做大胆的;大胆的行为由PropertyDescriptorShouldSerializeValue确定;你可以用通过各种PropertyDescriptor技巧(System.ComponentModelICustomTypeDescriptorTypeConverterTypeDescriptionProviders并提供自己的PropertyDescriptor

可替换地,也有类似的网格具有更多的选项,如 - 看到页上的“属性自定义”

scroll top