Итак, согласно Microsoft , такое поведение предусмотрено. Вы можете привыкнуть к String.Format
, используя настройки культуры ПК, на котором работает ваше приложение, но привязка в WPF не предназначена для такой работы:
Преобразователи привязки никогда не используют CurrentCulture - это сделано специально, так что их поведение предсказуемо для всех машин и региональных настроек.
Однако вы можете указать культуру, которую должен использовать конвертер. Есть два способа сделать это:
- Установить Binding.ConverterCulture. Например.
<TextBox Text="{Binding Birthday, ConverterCulture=de-DE}"/>
- Установите свойство xml: lang (или, что эквивалентно, Language) целевого элемента. Например.
<TextBox xml:lang="de-DE" Text="{Binding Birthday}"/>
Кажется, вам нужно заранее знать все различные культуры, в которых будет работать ваше приложение. Что, кажется, немного дерьмо для всех, у кого есть пользователи за пределами Америки.