У меня есть требование, которое требует форматирования DateTime на основе настроек языка системы и символа валюты на основе настроек пользователя.Пользовательские настройки из поля со списком, где пользователь выбирает страну.Таким образом, если пользователь выбирает Великобританию, то валюта должна отображаться в фунтах, а дата и время должны отображаться в формате США.
Например: если для параметра «Система» задано значение «США», а для параметра «Пользователь» - значение «Великобритания», то формат DateTime должен быть в США, а символ валюты - £.
. Я использовал этот код дляизменить информацию о культуре в соответствии с настройками локали системы:
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata(System.Windows.Markup.XmlLanguage.GetLanguage(
System.Globalization.CultureInfo.CurrentCulture.IetfLanguageTag
)
)
);
Как отформатировать символ валюты в соответствии с настройками пользователя.Я использовал форматирование культуры StringFormat=C2
в приложении, и оно отображает символ валюты в зависимости от языкового стандарта системы.
Это приложение WPF.
Некоторые из стран, включенных вВ выпадающий список входят: США, Германия, Великобритания, Канада
Редактировать:
Я мог бы использовать что-то вроде этого.Но есть ли способ связать эту информацию о культуре с моей моделью представления?
<StackPanel Margin="10">
<TextBlock Text="{Binding TotalPrice, StringFormat=C2, ConverterCulture='en-UK'/>
<TextBlock Text="{Binding TotalPrice, StringFormat=C2, ConverterCulture='en-US'/>
<TextBlock Text="{Binding TotalPrice, StringFormat=C2, ConverterCulture='de-DE'/>
</StackPanel>