Столкнулся с проблемой биндинга дробных чисел в WPF. Суть: есть TextBox, свойство Text которого через биндинг связано с полем типа float/double. При неаборе числа вида "23,4" (через запятую), запятая исчезает и в число записывается 234. Если писать через точку, то все нормально. В региональных настройках стоит в качестве разделителя запятая.
Решается принудительным переопределением LanguageProperty для всех элментов управления.
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)
)
);
Но странно, почему это не сделано по умолчанию.
Спустя 6 лет, этот кейс всё так же взрывает головы и бездарно тратит время...Спасибо за ваши уроки и блог!
ОтветитьУдалитьПожалуйста, для того, собственно и делал :)
Удалить