Отображение культуры с учетом короткой строки даты и времени из DatetimeOffset в XAML - PullRequest
3 голосов
/ 21 февраля 2012

У меня есть приложение WPF4.

Там я привязываю элемент управления пользовательского интерфейса к значению DateTimeOffSet. Например, текстовый блок

<TextBlock Text="{Binding Due.LocalDateTime,StringFormat='{}{0:dd MMM HH:mm}'}"/>

Но я хочу, чтобы культура осознавала ценность. Так, например, в Германии есть 24-часовое представление, а в Америке - AM / PM-представление.

Какой самый лучший / самый умный способ реализовать это? Нужен ли мне советник? или есть способ представить это в xaml? Также порядок полей даты различен и так далее ...

1 Ответ

3 голосов
/ 21 февраля 2012

Здесь есть тонна обходных путей для этого сомнительного "побочного" поведения:

http://connect.microsoft.com/VisualStudio/feedback/details/442569/wpf-binding-uses-the-wrong-currentculture-by-default

Точно скопировать пользовательские настройки, выбранные пользователем в апплете панели управления «Региональные настройки», сложно, но общие специфичные для локали настройки достаточно просто установить атрибутом xml: lang.

Например, вы можете добавить что-то подобное в ваш элемент окна верхнего уровня, например:

Language="{Binding Source={x:Static Globalization:CultureInfo.CurrentCulture}, Path=IetfLanguageTag,Mode=OneTime}"

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

...