c# – 负货币数量XAML

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

>这是我在绑定中使用StringFormat的方式. (BTW,我只尝试{0:C})
>如预期
>我的电脑的当前设置为负货币号码
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);在我的转换器的转换方法.

解决方法

尝试将CurrentCulture更改为CurrentUICulture:
FrameworkElement.LanguageProperty.OverrideMetadata(
    typeof(FrameworkElement),new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.IetfLanguageTag))
);

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

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

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...