2016-12-19 2 views
0

Im делая квитанцию ​​для фаст-фуда. один столбец для цены, которую я пытаюсь установить его в качестве валюты в XAML как этот

<DataGridTextColumn Header="MenuPrice" x:Name="MenuPrice" 
             Binding="{Binding MenuPrice, StringFormat=C2}" Width="100" /> 

В других местах я получаю знак евро, но только в DataGrids я получить его как доллар. как я могу изменить его, чтобы фактически следить за конфигурацией окон пользователей? как и другие места.

enter image description here

, если вы видите на днище у меня есть ярлык, который является результатом общего, как этот

total.toString("c2"); 

и я получаю знак евро, но не в DataGrid

ответ

1

Я считаю, это в основном дубликат this question.

В chosen answer состоянии:

Я не уверен, если это было исправлено в .NET 4, но WPF никогда не взяла текущую культуру при рендеринге вещи, как валюта или даты.

Он также дает решение.

+1

Thanks mate. это именно моя проблема. но я задаюсь вопросом, почему я не мог найти эту должность. –

+0

@ phi1010 также указал на [другой вопрос] (http://stackoverflow.com/questions/991526/wpf-xaml-bindings-and-currentculture-display), который был очень похож, если вы хотели продолжить чтение. –

1

Установите язык свойство DataGrid к текущей культуре вашего потока:

yourDataGrid.Language = System.Windows.Markup.XmlLanguage.GetLanguage(System.Threading.Thread.CurrentThread.CurrentCulture.IetfLanguageTag); 

Я боюсь, что вы не можете сделать это в чистом XAML.

+0

Проблема с первой частью этого ответа заключается в том, что он не будет следовать «конфигурации окон пользователя», как указано в качестве требования в вопросе. –

+0

Спасибо, что указали это. Я отредактировал свой ответ. – mm8

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