В приложении WPF/MVVM у меня есть настраиваемый элемент управления для определенного представления. Этот элемент управления расширяет WPF DataGrid и содержит имена пользователей и идентификаторы.
В том же представлении у меня есть несколько текстовых полей, свойства Text которых привязаны ко всем различным свойствам объекта User, представленным моделью представления, а UpdateSourceTrigger для свойств Text имеет значение LostFocus.
Данные обновляются должным образом всякий раз, когда я покидаю текстовое поле (поскольку текстовое поле теряет фокус). Но проблема в том, что этого не происходит, когда я выбираю любой элемент в пользовательском элементе управления, оставляя любое текстовое поле, данные текстового поля не обновляются. Кто-нибудь может объяснить, что происходит?
Текстовое поле WPF не теряет фокус при выборе пользовательского элемента управления
Ответы (1)
Возможно, ваш пользовательский элемент управления имеет свою собственную область фокуса, что позволяет логически фокусироваться как в текстовом поле, так и в вашем пользовательском элементе управления? Попробуйте проверить snoop.
person
Kent Boogaart
schedule
02.07.2012
Спасибо, Кент. Очень полезный совет, и я только что нашел Focusable=False в ControlTemplate пользовательского элемента управления. Означает ли это, что, поскольку UserControl не получает фокус из-за Focusable = False, текстовое поле все еще сохраняет свой фокус?
- person atiyar; 02.07.2012
@Nero: это вполне возможно, хотя в нем может быть еще один фокусируемый элемент управления. Snoop также может сообщить вам, какой элемент управления имеет фокус (см. строку состояния).
- person Kent Boogaart; 02.07.2012