负货币号XAML

时间:2010-10-30 18:54:01

标签: c# wpf currency string-formatting

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

  1. 这就是我在绑定中使用StringFormat的方法。 (顺便说一下,我只试过{0:C})
  2. 正如预期的那样
  3. 我的电脑的当前设置为负币数 4。
  4. 运行我的应用程序时的结果
  5. alt text

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

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

    感谢您的时间。

    更新

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

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

2 个答案:

答案 0 :(得分:1)

尝试将CurrentCulture更改为CurrentUICulture

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

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

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

答案 1 :(得分:0)