2015-05-07 2 views
0

Im использованием DataGrid с колоннами:формат DataGridTextColumn в зависимости от пользователей текущей культуры

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

Как я могу использовать формат вывода в зависимости от пользователей текущей культуры?

Например 0,203 для немецкого или 0,203 для нас или что-то вроде этого ...

+0

Ваш текущий код должен быть специфичным для культуры. Из [MSDN] (https://msdn.microsoft.com/en-us/library/0c899ak8 (v = vs.110) .aspx # SpecifierPt): _The "." спецификатор специального формата вставляет локализованный десятичный разделитель в строку result_. Если вы хотите исправить культуру, вы можете добавить 'ConverterCulture = en-GB', например – dkozl

+0

@dkozl Я нашел ответ – MikroDel

ответ

1

Это причина, по умолчанию, WPF использует EN-US в качестве культуры, независимо от настроек системы.

От двух ответов SO: first и second.

И это код, чтобы исправить это:

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

В ответах выше рекомендуется CultureInfo.CurrentCulture.IetfLanguageTag, но это не рекомендуется, как на сегодня и CultureInfo.CurrentCulture.Name следует использовать вместо него.

Смежные вопросы