Étiquettes de formatage WPF avec SsortingngFormat

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;)