Question

J'utilise un PropertyGrid pour afficher les propriétés personnalisées qui sont exposées par la mise en œuvre de ICustomTypeDescriptor.

Mes objets sont configurés dans une structure arborescente et les valeurs pour chaque propriété sont soit réglé dans chaque objet ou hérité d'objets parents. Dans PropertyGrid Je veux montrer visuellement l'utilisateur quelles sont les valeurs des propriétés sont définies dans l'objet sélectionné, et qui sont héritées des objets parents.

En ce moment, je montre chaque propriété il deux catégories. Un ensemble montre ce que la valeur est définie dans l'objet réel, avec un champ vide si pas défini. L'autre ensemble présente les valeurs des propriétés attribuées à l'objet qui sont soit mis dans l'objet, ou hérité sinon fixé à l'objet.

Je voudrais combiner ces deux groupes en un seul achat montrant les propriétés du jeu en texte normal, et les valeurs héritées dans le texte en italique. Cependant, il ne semble pas être un moyen de le faire à travers ICustomTypeDescriptor.GetProperties (). Et je n'ai pas accès facile aux propriétés du PropertyGrid car ils sont créées alors que le programme est en cours d'exécution.

Était-ce utile?

La solution

Vous ne pouvez pas faire italiques - mais vous pouvez le faire gras; le comportement en gras est déterminée par la PropertyDescriptor du ShouldSerializeValue; vous pouvez envelopper PropertyDescriptors via différentes astuces System.ComponentModel (ICustomTypeDescriptor, TypeConverter ou TypeDescriptionProvider) et fournir votre propre PropertyDescriptor.

Sinon, il y a des grilles similaires avec d'autres options, telles que par VisualHint -. voir "personnalisation de la propriété" sur cette page

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top