Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Negative currency number XAML

I have a little problem with the current format of my negative currency number. Here's a screenshot resuming my situation.

  1. This is how I'm using the StringFormat in my binding. (BTW, I tried only {0:C})
  2. As expected
  3. The current settings of my computer for the negative currency number 4.
  4. The result when I'm running my application

alt text

Why the result isn't -0,08 $ ?

Any ideas of how I should proceed?

Thanks for your time.

UPDATE:

I tried to resolve the problem with a converter, here's the result :

  • I found that the Thread.CurrentThread.CurrentUICulture was not the same as the Thread.CurrentThread.CurrentCulture, so I fixed it in my App.xaml.cs. Unfortunately, same result.
  • I tried to display my values through a converter to see if I could debug the problem. The fact is that the culture received in the parameters of the Convert method was okay, but its CurrentNegativePattern was not the same as in the Thread.CurrentThread.CurrentCulture. That's probably the reason why I have this problem. for the moment, I'll use this : return ((double)value).ToString("C2", Thread.CurrentThread.CurrentCulture); in the Convert method of my converter.
like image 524
esylvestre Avatar asked Oct 30 '10 18:10

esylvestre


1 Answers

Try changing the CurrentCulture to CurrentUICulture:

FrameworkElement.LanguageProperty.OverrideMetadata(
    typeof(FrameworkElement),
    new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.IetfLanguageTag))
);

Please note though that this may not use your regional settings. The CultureInfo object does describe your regional settings, but what you're doing with the IetfLanguageTag is extracting that to a specific culture. That culture does not have the adjustments you've made to your regional settings.

Alternatively, you can have a look at the ConvertCulture option of the binding. This actually does take a CultureInfo.

like image 94
Pieter van Ginkel Avatar answered Oct 15 '22 07:10

Pieter van Ginkel