Пользовательский контроль WPF не позволяет изменять потерянный фокус при отдельном управлении - PullRequest
3 голосов
/ 13 августа 2011

Это немного сложно объяснить.

У меня есть пользовательский контроль с некоторыми текстовыми полями.У меня также есть меню чуть выше этого пользовательского контроля в том же окне.Всякий раз, когда я убираю вкладку, LostFocus корректно срабатывает в текстовом поле, и это то, что я хочу.Как ни странно, если я нажимаю кнопку «Меню» в верхней части окна, событие LostFocus не запускается в текстовом поле.Есть ли элегантный способ убедиться, что мое меню правильно позволяет LostFocus срабатывать на любых элементах управления, которые в последний раз были в фокусе?

Я также хочу избежать необходимости обновления BindingExpressions, в противном случае я бы, вероятно, сделал это для N текстовых полей, что нежелательно.

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

Есть идеи?Спасибо.

1 Ответ

0 голосов
/ 23 августа 2011

Меню WPF также или Winforms / UnManaged?Если один из двух, событие потерянного фокуса не срабатывает.Это может привести к хаосу в элементах управления WPF столько раз, сколько в меню выполняется сохранение или другая функция данных.Чтобы противостоять этому, мне пришлось реализовать несколько способов борьбы с этим.Самым простым способом было реализовать событие отпускания мыши на самом пользовательском элементе управления и выполнить любые действия, которые вам требуются, вручную в коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...