在我的应用程序中,我将标签、文本块等绑定到视图模型中的双精度值。
<Label Content="{Binding DoubleValue}" ContentStringFormat="{}{0:0.00}">
<TextBlock Text="{Binding DoubleValue, StringFormat='\{0:f2\}'}"
在我的“代码隐藏”中,我设置了MainWindow的语言属性:
TheMainWindow.Language = XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.Name);
这就像一个护身符。选择德国区域性时,所有双精度值都使用逗号作为小数符号;选择英语区域性时,所有双精度值都使用点作为小数符号。
问题是当您自定义窗口区域设置时,例如,我将德国reagion设置配置为有一个点作为小数分隔符。
StringFormat方法无法识别此自定义设置!它仍然使用逗号将双精度值格式化为十进制符号。
如果我在视图模型中创建一个字符串属性,如下所示
public string FormattedDoubleValue
{
get { return DoubleValue.ToString("0.00"); }
}
并绑定到此属性,这将识别自定义区域设置!
有没有办法让StringFormat方法识别自定义区域设置?
发布于 2018-04-30 16:22:25
我在这里找到了一个解决方案:CurrentUICulture ignores Region and Language settings
使用MSkuta的答案可以在不更改所有xaml文件的情况下工作:)
https://stackoverflow.com/questions/50096211
复制相似问题