DataGridTextColumn 格式取决于用户当前的文化
DataGridTextColumn format depending on users current culture
我正在使用 DataGrid
列:
<DataGrid.Columns>
...
<DataGridTextColumn Header="my value" Binding="{Binding Path=MyValue, ValidatesOnDataErrors=True, StringFormat=0.000000}"/>
</DataGrid.Columns>
如何根据用户当前的文化使用输出格式?
例如德语为 0,203 或我们为 0.203 或类似的东西...
这是因为默认情况下,WPF 使用 en-US 作为文化,无论系统设置如何。
来自两个 SO 答案:first and second。
这是修复它的代码:
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.Name)));
上面的答案是 CultureInfo.CurrentCulture.IetfLanguageTag
推荐的,但今天已弃用,应该使用 CultureInfo.CurrentCulture.Name
代替它。
我正在使用 DataGrid
列:
<DataGrid.Columns>
...
<DataGridTextColumn Header="my value" Binding="{Binding Path=MyValue, ValidatesOnDataErrors=True, StringFormat=0.000000}"/>
</DataGrid.Columns>
如何根据用户当前的文化使用输出格式?
例如德语为 0,203 或我们为 0.203 或类似的东西...
这是因为默认情况下,WPF 使用 en-US 作为文化,无论系统设置如何。
来自两个 SO 答案:first and second。
这是修复它的代码:
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.Name)));
上面的答案是 CultureInfo.CurrentCulture.IetfLanguageTag
推荐的,但今天已弃用,应该使用 CultureInfo.CurrentCulture.Name
代替它。