Comment puis-je afficher les valeurs similaires dans des champs personnalisés dans une grille de propriétés?

StackOverflow https://stackoverflow.com/questions/612820

  •  03-07-2019
  •  | 
  •  

Question

J'ai une grille de propriétés qui m'aide à gérer tous les contrôles d'un formulaire. Ces commandes sont destinées aux utilisateurs de type concepteur. Je ne m'inquiète donc pas beaucoup de l'interface utilisateur ... jusqu'à ce que quelqu'un sélectionne plusieurs objets.

J'ai un UITypeEditor pour le "BottomDiameter". propriété sur ces objets communs. Il garde la trace des unités (mètres / pieds) et fait de belles choses à la volée. Cependant, lorsque quelqu'un sélectionne deux ou trois objets communs, BottomDiameter est vide, même s'il correspond à la même chaîne de texte.

La raison (je pense) qu’elle est vide est qu’il s’agit en fait de trois objets objDiameter distincts. Comment puis-je dire à la grille de propriétés de se comporter comme toutes les autres propriétés et d'afficher la valeur si elle correspond à la même chaîne ???

UPDATE: Par exemple, le "Ancre" La propriété a une sortie texte de " Top, Right " mais quand vous le tirez, c'est un objet. Cependant, lorsque vous sélectionnez cinq objets sur votre formulaire qui ont tous le même paramètre d'ancrage, vous pouvez toujours voir la chaîne "Top, Right". dans la grille des propriétés.

Était-ce utile?

La solution

Si votre diamètre inférieur est une classe et non une simple primitive, vous devez remplacer la méthode Equals dans cette classe.

Autres conseils

Dans le TypeConvertor du type de données attribué à la propriété BottomDiameter, vous pouvez créer un vistor du type appelé classe, BottomDiameterVistor, qui prendrait un tableau ou une liste des diamètres inférieurs sélectionnés. Remplacez la propriété to string sur BottomDiameterVistor pour renvoyer votre valeur de texte agrégée pour la propriété.

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