WPF композитное приложение - область вкладок - просмотр не получает фокуса - PullRequest
0 голосов
/ 06 июня 2009

Я только начинаю использовать библиотеки составных приложений для WPF. В моей оболочке у меня есть область в tabcontrol, которая используется для отображения различных типов представлений. У меня также есть панель инструментов с кнопками, подключенными к командам, например, сохранить. Команды связаны в моих представлениях, и представления имеют методы canExecute и execute.

Идея состоит в том, что когда я щелкаю вкладку, кнопки панели инструментов должны быть включены или отключены в соответствии с методами в представлении. Проблема в том, что когда я переключаю вкладки, представление не получает фокус, и canExecute для этого представления не вызывается. Кнопки панели инструментов остаются подключенными к командам в ранее выбранном представлении и напоминают об этом, пока я фактически не нажму на новом представлении

Я сейчас в тупике о том, как заставить изображение сфокусироваться. Я пытался смотреть на содержимое вкладки, когда вкладки SelectionChanged и устанавливая фокус там, но это не имеет значения. Есть идеи?

1 Ответ

0 голосов
/ 06 июня 2009

Попробуйте прослушать событие View.Loaded, затем вызовите View.focus() в обработчике. Wpf не будет принимать запросы фокуса до инициализации и загрузки элемента. Поскольку событие SelectionChanged вызывается до загрузки представления, запрос фокуса будет просто проигнорирован. Загруженное событие вызывается каждый раз, когда элемент отображается после его скрытия.


Смотрите этот пост в блоге для получения дополнительной информации о фокусе:

http://www.julmar.com/blog/mark/PermaLink,guid,6e4769e5-a0b3-47b2-a142-6dfefd0c028e.aspx

...