151 votes

Utilisez StringFormat pour ajouter une chaîne à une liaison XAML WPF

J'ai une application WPF 4 qui contient un TextBlock ayant une liaison unidirectionnelle à une valeur entière (dans ce cas, une température en degrés Celsius). Le XAML ressemble à ceci :

Cela fonctionne bien pour afficher la valeur de température réelle mais j'aimerais formater cette valeur pour inclure °C au lieu du simple nombre (30°C au lieu de simplement 30). J'ai lu à propos de StringFormat et j'ai vu plusieurs exemples génériques comme celui-ci :

// formater la valeur liée comme une devise

et

// précéder la valeur liée avec une chaîne et la formater comme une devise

Malheureusement, aucun des exemples que j'ai vus n'a ajouté de chaîne à la valeur liée comme je tente de le faire. Je suis sûr que c'est quelque chose de simple mais je n'ai pas réussi à le trouver. Quelqu'un peut-il m'expliquer comment faire cela ?

292voto

Reed Copsey Points 315315

Votre premier exemple est effectivement ce dont vous avez besoin :

135voto

denis morozov Points 2779

Voici une alternative qui fonctionne bien pour la lisibilité si vous avez la liaison au milieu de la chaîne ou plusieurs liaisons:

133voto

Casper Ehrenborg Points 1339

Veuillez noter que l'utilisation de StringFormat dans les Bindings semble fonctionner uniquement pour les propriétés de "texte". Utiliser cela pour Label.Content ne fonctionnera pas

-17voto

Rajesh Nath Points 39

Dans le xaml

Dans ViewModel, de cette façon, définir la valeur fonctionne également :

 public string CelsiusTemp
        {
            get { return string.Format("{0}°C", _CelsiusTemp); }
            set
            {
                value = value.Replace("°C", "");
              _CelsiusTemp = value;
            }
        }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X