Я использую элемент управления CalendarDatePicker в UWP. Формат даты должен быть локализован в соответствии с выбранной пользователем культурой, которая не обязательно совпадает с настройками языка ОС. Я хочу, чтобы формат даты отображался так же, как и myCultureInfo.DateTimeFormat.ShortDatePattern (например, мм / дд / гггг). CalendarDatePicker предоставляет свойство DateFormat, которое, как ожидается, будет иметь формат, такой как {month.integer} / {day.integer} / {year.full}. Мне нужен конвертер для привязки XAML. Кажется, должен быть простой способ сделать это.
<!-- In XAML -->
<CalendarDatePicker
FirstDayOfWeek="{x:Bind ViewModel.CalendarFirstDayOfWeek, Mode=OneTime, Converter={StaticResource SystemDayOfWeekToWindowsDayOfWeekConverter}}"
DateFormat="{x:Bind ViewModel.DateFormat, Mode=OneWay, Converter={StaticResource DateTimeFormatToDateTimeFormatterTemplateConverter}"
Date="{x:Bind ViewModel.Date, Mode=TwoWay, Converter={StaticResource DateTimeToDateTimeOffsetConverter}}"/>
//Converter
public class DateTimeFormatToDateTimeFormatterTemplateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
//What goes here?
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
Edit:
В идеале у CalendarDatePicker должно быть свойство CultureInfo, которое позаботится обо всем этом. Я пробовал свойство Language, но оно не дало заметного эффекта.