Есть ли способ привязаться к Keyboard.FocusedElement?

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

Я видел два способа получить текущее сфокусированное управление.

Один использует Keyboard.FocusedElement. Второй — обход визуального дерева.

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

Но Keyboard.FocusedElement не реализует INotifyPropertyChanged. Поэтому я не могу просто привязаться к нему нормально.

Есть ли способ заставить его сообщить мне, когда он изменится?

(Или какой-то другой способ иметь свойство, которое всегда установлено для элемента управления, сфокусированного в данный момент?)

ПРИМЕЧАНИЕ:Ясно, что я мог бы добавить событие к каждому элементу управления и обновить свойство. Но у меня много контроля. Я хочу избежать необходимости привязывать событие к каждому из них.

5
задан Vaccano 6 July 2012 в 17:39
поделиться