Сценарий : в проекте Silverlight 4 MVVM у нас есть элемент управления ListBox
, содержащий элементы, выбранный элемент двусторонне привязан к соответствующему свойству в ViewModel. Другой элемент управления (например, я сократил его до одного TextBox
) - это данные, привязанные к содержимому выбранного элемента. Значение должно обновляться при выходе / потере фокуса.
Проблема : Когда значение в TextBox
изменяется, и мы оставляем это TextBox
, нажимая клавишу Tab, все работает как нужно - значение обновляется. Однако, если пользователь щелкает по другому элементу в ListBox
, то средство установки SelectedItem запускается до того, как запускается средство установки содержимого TextBox
, не оставляя возможности обработать ввод пользователя.
Вы можете видеть в отладчике при добавлении точек останова в средства задания свойств, что сначала применяется новый выбор ListView
, до обработки обновления TextBox
.
Желаемое поведение. : нам нужно знать, что текущий выбранный элемент был изменен до того, как пользователь выбрал другой элемент. Это' Я представляю самостоятельно разработанное решение , которое, вероятно, будет принятым. Я все еще хочу побудить вас комментировать и давать советы. Спасибо.