Форматы даты Silverlight - PullRequest
       20

Форматы даты Silverlight

3 голосов
/ 26 ноября 2009

У меня возникают очень странные проблемы с форматированием даты в моем приложении Silverlight. Моя местная культура настроена на Великобританию, но я постоянно вижу американские даты, появляющиеся повсюду. Я легко могу жестко закодировать их в британский формат в определенных случаях, используя:

<UserControl ... Language="en-GB"...>

Но, как я уверен, вы все согласитесь, это ужасная вещь.

Я попытался установить Lanaguage на en-GB в основном приложении, и это имеет частичный успех. Я также попробовал предложение Джастина Энджелса (размещено здесь: Как изменить формат даты в элементе управления DatePicker в Silverlight? ), опять же только частичный успех.

Пример проблемы можно увидеть здесь:

http://lh3.ggpht.com/%5FL9TmtwXFtew/Sw5aVZJfG1I/AAAAAAAAGkI/6jYnsB91HjI/image%5Fthumb%5B1%5D.png http://lh3.ggpht.com/%5FL9TmtwXFtew/Sw5aVZJfG1I/AAAAAAAAGkI/6jYnsB91HjI/image%5Fthumb%5B1%5D.png

Сетка данных на родительской странице показывает форматирование в Великобритании, в то время как информация в ChildWindow показывает форматирование в США ... grrrr

У кого-нибудь есть окончательное решение для решения этой проблемы во всем приложении?

Спасибо, Mark

Ответы [ 4 ]

1 голос
/ 30 ноября 2010

Вы можете привязать данные к свойству Language корневого визуального элемента. Посмотрите на мой вопрос здесь:

Как переключить пользовательский интерфейс Культура привязки данных на лету в Silverlight

0 голосов
/ 30 ноября 2009

Снято в темноте, но не влияет ли изменение языковых предпочтений браузера? То есть в IE Инструменты -> Свойства обозревателя -> Языки.

НТН

Mark

0 голосов
/ 29 ноября 2010

Вы можете установить формат даты для всего приложения в событии запуска приложения следующим образом. Это переопределит любые региональные настройки на компьютере пользователя

        Thread.CurrentThread.CurrentCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
        Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = dd/MM/yyyy";
0 голосов
/ 26 ноября 2009

Разве вы не можете использовать свойство SelectedDateFormat DatePicker? Если вы хотите сделать это один раз, не могли бы вы создать свой собственный пользовательский элемент управления, производный от оригинала с этой предустановкой значения, а затем использовать свой производный элемент управления во всем приложении?

Доброжелательность,

Dan

...