微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/csharp/94217.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐