负货币号XAML

esy*_*tre 10 c# wpf currency string-formatting

我的负货币编号的当前格式有点问题.这是一个截图,恢复了我的情况.

  1. 这就是我在绑定中使用StringFormat的方式.(顺便说一下,我只试过{0:C})
  2. 正如所料
  3. 我的计算机的当前设置为负数货币4.
  4. 我正在运行我的应用程序时的结果

替代文字

为什么结果不是-0,08 $?

关于我应该如何进行的任何想法?

谢谢你的时间.

更新:

我尝试用转换器解决问题,结果如下:

  • 我发现它和Thread.CurrentThread.CurrentUICulture它不一样Thread.CurrentThread.CurrentCulture,所以我在App.xaml.cs中修复了它.不幸的是,结果相同.
  • 我试图通过转换器显示我的值,看看我是否可以调试问题.事实是,在Convert方法的参数中收到的文化是可以的,但它CurrentNegativePattern与在该方法中的不同Thread.CurrentThread.CurrentCulture.这可能就是我遇到这个问题的原因.目前,我将使用这个:return ((double)value).ToString("C2", Thread.CurrentThread.CurrentCulture);Convert我的转换器的方法.

Pie*_*kel 1

尝试将其更改CurrentCultureCurrentUICulture

FrameworkElement.LanguageProperty.OverrideMetadata(
    typeof(FrameworkElement),
    new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.IetfLanguageTag))
);
Run Code Online (Sandbox Code Playgroud)

请注意,这可能不会使用您的区域设置。该CultureInfo对象确实描述了您的区域设置,但您正在做的IetfLanguageTag是将其提取到特定的文化。该文化没有您对区域设置所做的调整。

或者,您可以查看ConvertCulture绑定选项。这实际上确实需要一个CultureInfo.