Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing the default thousand and decimal separator in a binding

Let's say I have a number 1234567.89. The number is displayed in a WPF TextBlock. I am trying to apply StringFormat attribute to the Text property so that the number would be displayed like:

1.234.567,89

As you can see, the thousand and decimal separators are inverted from the invariant culture specification.

I've tried setting numerous combinations for the StringFormat, but without success. This is the latest I came up with:

Text="{Binding SomeBinding, StringFormat={}{0:#'.'##0','00}}"

But the output isn't correct. Also, using N2 or changing culture isn't an option. I would like to avoid converters if possible.

So, is there a way to change the default separators through XAML?

like image 416
Miloš Ranđelović Avatar asked Feb 21 '13 10:02

Miloš Ranđelović


1 Answers

You don't have to change the culture. Just use String.Format with specified culture (de-DE should be fine):

string output = String.Format(new CultureInfo("de-DE"), "{0:N}", yourDoubleValue);

Output: 9.164,32

If you want to do it in XAML, you could try:

Text="{Binding SomeBinding, StringFormat={}{0:N}, ConverterCulture=de-DE}"
like image 64
Andrey Gordeev Avatar answered Oct 20 '22 12:10

Andrey Gordeev