C# DataGridTextColumn格式取决于用户当前区域性

C# DataGridTextColumn格式取决于用户当前区域性,c#,wpf,format,C#,Wpf,Format,Im使用带有列的DataGrid: <DataGrid.Columns> ... <DataGridTextColumn Header="my value" Binding="{Binding Path=MyValue, ValidatesOnDataErrors=True, StringFormat=0.000000}"/> </DataGrid.Columns> ... 如何根据用户的当前区域性使用输出格式 例如,德语的0203或美国的0

Im使用带有列的
DataGrid

<DataGrid.Columns>
   ...
   <DataGridTextColumn Header="my value" Binding="{Binding Path=MyValue, ValidatesOnDataErrors=True, StringFormat=0.000000}"/>
</DataGrid.Columns>

...
如何根据用户的当前区域性使用输出格式


例如,德语的0203或美国的0.203或类似的东西…

这是因为默认情况下,无论系统设置如何,WPF都使用en us作为区域性

从两个答案来看:和

这是修复它的代码:

FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.Name)));

在上面的答案中,建议使用
CultureInfo.CurrentCulture.IetfLanguageTag
,但今天不推荐使用此选项,应使用
CultureInfo.CurrentCulture.Name
来代替它。

您当前的代码应该已经是特定于区域性的。From:“.”自定义格式说明符在结果字符串中插入本地化的十进制分隔符。如果您想修复区域性,可以为添加
ConverterCulture=en GB
example@dkozl我找到了答案