Текстовое поле WPF не теряет фокус при выборе пользовательского элемента управления

В приложении WPF/MVVM у меня есть настраиваемый элемент управления для определенного представления. Этот элемент управления расширяет WPF DataGrid и содержит имена пользователей и идентификаторы.
В том же представлении у меня есть несколько текстовых полей, свойства Text которых привязаны ко всем различным свойствам объекта User, представленным моделью представления, а UpdateSourceTrigger для свойств Text имеет значение LostFocus.
Данные обновляются должным образом всякий раз, когда я покидаю текстовое поле (поскольку текстовое поле теряет фокус). Но проблема в том, что этого не происходит, когда я выбираю любой элемент в пользовательском элементе управления, оставляя любое текстовое поле, данные текстового поля не обновляются. Кто-нибудь может объяснить, что происходит?


person atiyar    schedule 02.07.2012    source источник


Ответы (1)


Возможно, ваш пользовательский элемент управления имеет свою собственную область фокуса, что позволяет логически фокусироваться как в текстовом поле, так и в вашем пользовательском элементе управления? Попробуйте проверить snoop.

person Kent Boogaart    schedule 02.07.2012
comment
Спасибо, Кент. Очень полезный совет, и я только что нашел Focusable=False в ControlTemplate пользовательского элемента управления. Означает ли это, что, поскольку UserControl не получает фокус из-за Focusable = False, текстовое поле все еще сохраняет свой фокус? - person atiyar; 02.07.2012
comment
@Nero: это вполне возможно, хотя в нем может быть еще один фокусируемый элемент управления. Snoop также может сообщить вам, какой элемент управления имеет фокус (см. строку состояния). - person Kent Boogaart; 02.07.2012