Установка textBox.Text не обновляет привязанное свойство twoway?

2

Имеет ли смысл, что если текст в TextBox связан с базой данных с использованием режима twoway, и я задал текст чему-то, он должен обновить свойство? Мое свойство обновляется при вводе внутри элемента управления, но не тогда, когда я устанавливаю значение в коде.

  • 0
    Можете ли вы показать нам код?
Теги:
wpf
data-binding
properties

3 ответа

3
Лучший ответ

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

Если связанный объект обновляется, когда задано свойство Text, тогда потребуется специальный код case, чтобы определить, когда такой назначенный объект является результатом изменения связанного объекта по другим причинам. В противном случае вы получите бесконечный цикл.

  • 0
    Вопрос возникает из-за работы, которую я выполняю с программным добавлением / удалением привязок данных. Я обнаружил, что всякий раз, когда я устанавливаю привязку в коде, он устанавливает свойство, с которым я связываюсь, и текстовое поле для пустых строк. Когда я снова установлю привязку данных, я хочу, чтобы текст внутри текстового поля был установлен в свойстве, а не наоборот. Почему я удаляю привязку данных в первую очередь? Поскольку свойство постоянно обновляется, и я не хочу, чтобы текстовое поле меняло свой текст, когда оно в фокусе.
  • 0
    Возможно, вам следует включить эти детали, возможно, с небольшим кодом в самом вопросе.
1

Вы не должны устанавливать значение .Text текстового поля... задайте значение свойства, к которому он привязан.:)

Я бы посоветовал вам больше узнать о методе Model-View-ViewModel для разработки ваших представлений. При выполнении такого рода работ он четко разделяет проблемы. Причина, по которой вы видите эту "ошибку" в отношении фокуса, вызывающей привязку к обновлению, заключается в том, что большую часть времени это не подходит.

Вот довольно хорошее введение видео в MVVM: MVVM на канале 9

0

Это происходит потому, что он только фиксирует данные, когда текстовое поле теряет фокус. Здесь - вопрос, который несколько связан с тем, что ускользает от этого.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню