J’ai une application WPF. J’ai des étiquettes et des datagrids liées à des propriétés publiques. Certaines de ces propriétés sont des valeurs numériques.
Dans la grid de données, j’ai utilisé la ligne ci-dessous pour garantir que les valeurs affichent uniquement deux décimales, ce qui fonctionne. Cependant, lorsque j’utilise la même ligne ci-dessous pour mon étiquette, il ne semble pas avoir d’effet sur l’affichage, car le nombre est indiqué à environ 9 décimales. Je ne comprends pas pourquoi cela fonctionne pour la grid de données mais pas pour l’étiquette.
SsortingngFormat={}{0:0.##}
Code mis à jour
Pour label, vous devez utiliser ContentSsortingngFormat :
Raison
La propriété Content
de Label est de type object
et SsortingngFormat
est utilisé uniquement lorsque la propriété de liaison est de type Ssortingng
.
Si vous essayez votre code avec la propriété Text
de TextBlock, cela fonctionnera SsortingngFormat
avec SsortingngFormat
car la propriété Text est de type ssortingng.
Juste un petit ajout que j’aimerais publier dans ce sens au cas où quelqu’un d’autre s’y précipiterait … Mon application utilise la localisation car elle prend en charge plusieurs pays mais nous prenons également en charge les parameters système de l’utilisateur. Nous avons remarqué que ContentSsortingngFormat
défaut à la culture de votre interface utilisateur.
Cela entraînait un problème dans l’un de nos formulaires, où les parameters de décimales spécifiques à l’ordinateur qu’ils avaient configurés dans Windows n’étaient pas respectés lorsque vous avez spécifié ContentSsortingngFormat
.
Puisque ContentPresenter prend simplement le format de chaîne sans la culture de conversion que vous pouvez normalement spécifier dans la liaison, cela signifie qu’un format de type: 0:N
ne renverra que deux décimales si l’anglais est ma culture d’interface utilisateur actuelle, même si j’ai 5 décimales spécifiées sur mes parameters de windows .
Dans notre cas, nous avons appliqué des substitutions contraignantes pour contourner ce problème, mais nous voulions simplement simplement append cette information supplémentaire au cas où quelqu’un d’autre s’y précipiterait;)