Бывает со мной после программной настройки IsSelected на узел. Тогда я не могу щелкнуть, чтобы выбрать предыдущий узел.
[Изменить]
Наконец выяснил, что происходит. Кажется, недостаточно установить свойство IsSelected, потому что внутренняя логическая фокусировка дерева остается на старом выбранном элементе.
Событие было отправлено элементу дерева, но поскольку оно уже имело внутреннюю логическую фокусировку, оно не вызвало изменение фокуса (откуда, как я подозреваю, дерево знает, когда следует изменить выбранный элемент).
Если я вызову focus на узле дерева, для которого я установил IsSelected в true, он будет работать нормально.
====================
Вы устанавливаете IsSelected на true для новых добавленных элементов? Если так, также сделайте фокус, как это:
DependencyObject nodeVisualContainer = mTreeControl.ItemContainerGenerator.ContainerFromItem(nodeToSelect);
if (nodeVisualContainer is UIElement)
((UIElement)nodeVisualContainer).Focus();
Примечание: это только логически фокусирует элемент. Фокус клавиатуры не будет затронут.