Имеет ли смысл, что если текст в TextBox привязан к свойству, используя двухсторонний режим, и я установил для текста какое-то значение, он должен обновить свойство? Мое свойство обновляется, когда я набираю текст внутри элемента управления, но не когда я устанавливаю значение в коде.
Установка textBox.Text не обновляет связанное двухстороннее свойство?
Ответы (3)
Я бы сказал, что нет смысла напрямую изменять привязанное свойство Text. Ваш код должен настраивать другой конец привязки и позволять привязке обновлять элемент управления.
Если связанный объект обновляется, когда установлено свойство Text, тогда потребуется специальный код случая, чтобы определить, когда такой назначенный объект является результатом изменения связанного объекта по другим причинам. Иначе получился бы бесконечный цикл.
Вы не должны устанавливать значение .Text текстового поля ... установите значение свойства, к которому оно привязано. :)
Я рекомендую вам больше узнать о методе Model-View-ViewModel для проектирования ваших представлений. При выполнении такой работы сохраняется четкое разделение проблем. Причина, по которой вы видите эту «ошибку» в отношении фокуса, вызывающего обновление привязки, заключается в том, что в большинстве случаев такие вещи неуместны.
Вот неплохое введение в MVVM: MVVM на канале 9
Это потому, что он фиксирует данные только тогда, когда текстовое поле теряет фокус. Здесь есть несколько связанный с этим вопрос.