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 代替它。