Установите текстовое поле на "ничего" в WPF, но значение MV не обновляется - PullRequest
3 голосов
/ 22 июня 2010

У меня есть пользовательский интерфейс, в котором пользователь может ввести значение, и это значение обновляется в ViewModel (и в конечном итоге записывается обратно в базу данных).

Это прекрасно работает, если значение действительно введено. Но если вы хотите очистить это значение (т. Е. Установить его в ноль), оно не сработает.

Так, например, если это «собака», но я очищаю этот текст и «сохранить», изменение не распознается.

Я вызываю «PropertyChanged», который срабатывает при вводе значения. Но если текст очищен, и я нажимаю клавишу ввода или вкладку из текстового поля, свойство не обновляется.

Есть какой-то особый способ справиться с этим или я просто что-то упустил?

спасибо

Ответы [ 3 ]

1 голос
/ 23 июня 2010

Это должно работать ....

Вы уверены, что другие ваши слои (особенно БД) принимают «пустые» значения? Это может быть исключение конверсии или ошибка, которую можно молча съесть.

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

0 голосов
/ 02 октября 2017

Свойство не будет обновлено, если тип данных int.Установка свойства в виде строки обновит свойство после очистки.

0 голосов
/ 23 июня 2010

Как указано Veer в комментариях выше, попробуйте использовать UpdateSourceTrigger следующим образом, чтобы определить, когда вы изменяете текст. Установите точку останова в модели представления и посмотрите, захватываете ли вы события изменения при вводе в текстовом поле.

 <TextBox Text="{Binding Path=Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...