<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="MouseDoubleClick" Handler="OnItemMouseDoubleClick" />
...
И затем обработчик должен быть написан следующим образом, чтобы предотвратить двойной щелчок по последующим родительским TreeViewItems:
private void OnItemMouseDoubleClick(object sender, MouseButtonEventArgs args)
{
if (sender is TreeViewItem)
{
if (!((TreeViewItem)sender).IsSelected)
{
return;
}
}
.... do stuff.
}
Спасибо Аурелиену Рибону за 90% пути. Проблема двойного щелчка, кажется, хорошо известна в других публикациях на Stack Exchange. Просто объединяем оба решения в один ответ.