Binding в WPF очень хорошо, но разработчики Microsoft как всегда забыли о существовании стран, за пределами USA, и формат используемый по умолчанию не всегда подходит.
Попробуем исправить данную ситуацию несколькими способами.
Вот тот результат, к которому мы стремимся:
Первоначальное XAML описание окна:
Несколько вариантов не рассматриваем, как неперспективные:
Теперь то, что имеет право на жизнь:
Вариант 1 - Прямое указание культуры в Binding выражении
Вариант 2 - Изменение CurrentUICulture и использование ее в XAML
Изменяем класс App, указывая необходимую нам CultureInfo
В XAML на уровне окна добавляем ссылку на системную библиотеку Во всех binding выражениях прописываем культуру:
Вариант 3 - Изменение LanguageProperty на уровне окна В данном случае Language устанавливается до инициализацией компонент окна (imho так правильнее), но как показал тест, что если установить после, то все равно работает.
Вариант 4 - Установка Language на уровне приложения Данный метод, самый приятный и наименее затратный, т.к. Language наследуется всеми элементами визуального дерева, то больше ничего делать не надо. Естественно, все можно переопределять у детей.
И как результат:
Попробуем исправить данную ситуацию несколькими способами.
Вот тот результат, к которому мы стремимся:
Первоначальное XAML описание окна:
Несколько вариантов не рассматриваем, как неперспективные:
- Создание IValueConverter - IValueConverter может пригодится для чего-то другого.
- Использование Custom Format Strings
Теперь то, что имеет право на жизнь:
Вариант 1 - Прямое указание культуры в Binding выражении
Вариант 2 - Изменение CurrentUICulture и использование ее в XAML
Изменяем класс App, указывая необходимую нам CultureInfo
В XAML на уровне окна добавляем ссылку на системную библиотеку Во всех binding выражениях прописываем культуру:
Вариант 3 - Изменение LanguageProperty на уровне окна В данном случае Language устанавливается до инициализацией компонент окна (imho так правильнее), но как показал тест, что если установить после, то все равно работает.
Вариант 4 - Установка Language на уровне приложения Данный метод, самый приятный и наименее затратный, т.к. Language наследуется всеми элементами визуального дерева, то больше ничего делать не надо. Естественно, все можно переопределять у детей.
И как результат:
Комментариев нет :
Отправить комментарий