WPF Liaison StringFormat - Pas de mise en forme
J'ai une info-bulle avec une valeur définie comme:
Value="{Binding Path=DataItem.EquitySold, StringFormat=Reserved (Equity Share: \{0\}%)}"
La toolip est affiché comme:
72
Mais j'attends qu'il soit:
Réservé (Participation: 72%)
Quel est le problème avec ma liaison?
Je ne comprends pas comment ce code xaml de la compilation à tous
OriginalL'auteur David Ward | 2010-12-21
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé:
Pourquoi ne pouvait-il pas utiliser la Valeur de la Propriété?
Mitch explique dans sa réponse.
OriginalL'auteur decyclone
Une info-bulle est un contrôle de contenu, ce qui signifie qu'il n'a pas vraiment un modèle d'affichage. Ceci est démontré dans la première réponse par @deccyclone qui définit le contenu d'un TextBlock. Depuis la zone de texte est conçu pour afficher du texte, la StringFormat propriété de liaison fonctionne comme annoncé. Le bouton est un autre exemple de ce. (Les deux tirent de ContentControl)
Si vous définissez le Contenu d'une info-bulle à une chaîne, la chaîne est affichée parce que l'info-bulle est intégré dans le convertisseur si le type de données string. Si vous voulez prendre avantage de ce construit dans la chaîne de convertisseur, vous devez définir le format à l'aide de la ContentStringFormat propriété.
BTW, le conseil pour savoir quand utiliser StringFormat ou ContentStringFormat est par la propriété sur laquelle fournitures de contrôle pour le réglage du texte affiché à l'écran.
Propriété Text -> utiliser StringFormat
Le contenu de la propriété -> utiliser ContentStringFormat
+1 pour les détails.
Pourquoi avez-vous ouvert & fermer les accolades répertoriés en premier dans votre ContentStringFormat?
@ClearCloud8
Ouvert & fermer les accolades sont nécessaires dansBinding...,StringFormat={}{0}
quand vous avez besoin le {0} pour être le premier caractère. Ils ne sont pas nécessaires pourContentStringFormat
, mais ils peuvent être également de la partie.OriginalL'auteur Mitch
Vous n'avez pas besoin d'échapper les crochets. Essayez ceci (j'aime bien mettre le format en simple quotes):
Modifier la Valeur d'un Texte, et il fonctionnera aussi bien...
OriginalL'auteur Botz3000
Je suppose que c'est ce que votre type de données prend en charge - pour autant que je sais c'est passé comme sur des arguments IFormattable.
OriginalL'auteur Rune Andersen
Bouton à l'intérieur de DataGridTemplateColumn
OriginalL'auteur bgS
Pour quelqu'un d'autre qui serpente jusqu'ici dans une situation légèrement différente de ce qui est désiré pour la définition d'une info-bulle
StringFormat
viaStyle
:OriginalL'auteur Maslow
Essayer
Avez-vous essayé?
OriginalL'auteur Eugene Cheverda