Задать вопрос
@h1_0ne

Как изменить model из view с помощью текстбокса?

На вью у меня есть текстбокс. Я хочу сделать так, что бы при изменении текста в нем изменялось значение строки в model (veiw-model, делаю не строго). Свойство Text естественно прибиндил к этой строке. Как получить тот текст, что я внес в textbox?
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
petermzg
@petermzg
Самый лучший программист
<TextBox Text="{Binding UserName, UpdateSourceTrigger=PropertyChanged}" />

Binding.UpdateSourceTrigger, может принимать:

PropertyChanged
Источник обновляется немедленно, когда изменяется целевое свойство

LostFocus
Источник обновляется немедленно, когда изменяется целевое свойство и цель теряет фокус

Explicit
Источник не обновляется, пока не будет вызван метод BindingExpression.UpdateSource()

Для TextBox по умолчанию значение UpdateSourceTrigger = LostFocus
Ответ написан
Комментировать
@tex0
Немного дополню ответ Петр (о чем необходимо знать):
У биндинга есть свойство Mode, указывающее направление привязки.
В вашем случае его писать не обязательно, т.к. оно выставляется в дефолтное значение(TwoWay), указывающая что привязка будет двунаправленная - из модели во вьюху(когда значение меняющееся программно, отображается на view) и обратно(когда во вью, например в крнтроле(в вашем случае TextBox), вы меняете значение, оно попадает в привязанное свойство модели)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы