Числа отображаются в обратном направлении? - PullRequest
5 голосов
/ 22 марта 2011

Я не поверил, когда читал жалобу пользователя ... при наборе .123 в связанном текстовом поле WPF отображается .321! Пока это исправлено, но мне интересно, можно ли это классифицировать какошибка WPF?

Проблема возникает, когда текстовое поле привязано к двойному полю Entity Framework с режимом привязки UpdateSourceTrigger, установленным в PropertyChanged.С каждым числом, введенным после десятичной дроби, курсор перемещается назад сразу после десятичной точки, вызывая обратное число.Когда я устанавливаю UpdateSourceTrigger обратно на его значение по умолчанию LostFocus, проблема (понятно) исчезает.

Итак, это ошибка?Есть ли обходной путь, который позволил бы UpdateSourceTrigger быть PropertyChanged при привязке к двойному полю?

Ответы [ 2 ]

3 голосов
/ 22 марта 2011

Существует причина, по которой TextBox установлен на LostFocus, а не PropertyChanged.Когда вы связываете это с двойным EF, проверка может вызвать сброс значения, что, в свою очередь, может сбросить позицию курсора.

Для правильной работы TextBox с UpdateSourceTrigger.PropertyChanged требуется достаточное количество пользовательской логики, поскольку вам нужно отслеживать позиции курсора в событиях до обновления привязки и восстанавливать после.

Я сомневаюсь, что это будет считаться ошибкой, так как WPF устанавливает TextBox на UpdateSourceTrigger.LostFocus.Если бы значение по умолчанию было другим, я бы согласился, что это будет ошибкой, но, учитывая настройки по умолчанию, я сомневаюсь, что команда отнесется к нему как к одному.

0 голосов
/ 12 апреля 2012

Извините, что пришли на вечеринку так поздно, но у нас тоже была та же проблема, и на всякий случай, если кто-то еще увидит этот пост, у нас было другое решение ... мы использовали StringFormat для TextBox:

Text="{Binding Path=YourDecimalOrDouble, StringFormat=\{0:#.#####\}, UpdateSourceTrigger=PropertyChanged}

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

В любом случае, надеюсь, это поможет!

...