我有一个项目,我将gridview数据绑定到列表,其中一列被数据绑定到gridview。我遇到的问题是,如果一台计算机上的双精度为5.5,则在gridview中显示为5.5。但在另一个看起来像55,十进制标记消失。所以3.14看起来像314等。
使用以下代码发生错误:
myDatagrid.ItemsSource = someList;
Binding binding = new Binding("DoubleValue");
myColumnInDatagrid.Binding = binding;
我也尝试过使用一个非常简单的valueconverter,只返回double,并在ConvertBack中解析它。我对WPF很新,所以如果我犯了一些明显的错误,我很抱歉,我只是不明白为什么它在一台计算机上运行而在另一台计算机上运行。也许应该注意的是,两台计算机使用相同的操作系统,语言设置相同(至少是afaik)。
答案 0 :(得分:1)
您可以强制Binding对象使用特定的CultureInfo对象来处理转换,而不管当前的文化,通过显式设置其ConverterCulture属性,如下所示:
binding.ConverterCulture=Globalization.CultureInfo.NeutralCulture
(参考:http://msdn.microsoft.com/en-us/library/system.windows.data.binding.converterculture.aspx)
答案 1 :(得分:0)
FKE是对的:很可能文化在两台计算机上都有所不同,因此显示效果不同。
您可以通过绑定或FrameworkElement.Language
设置文化,这是为整个应用程序全局设置文化的好方法: