Я разрабатываю элемент управления TreeView
, и мое событие двойного щелчка продолжает всплывать в моих TreeViewItem
узлах.
Цель - развернуть или свернуть TreeViewItem
при двойном щелчке.
У меня есть стиль, который применяет обработчик события MouseDoubleClick
к каждому TreeViewItem
.
Вот код, который обрабатывает событие
private void TreeViewItemDoubleClicked( object sender, RoutedEventArgs e )
{
// Get the specific tree view item that was double clicked
TreeViewItem treeViewItem = sender as TreeViewItem;
// not null?
if( null != treeViewItem )
{
// Switch expanded state
if( true == treeViewItem.IsExpanded )
{
treeViewItem.IsExpanded = false;
}
else
{
treeViewItem.IsExpanded = true;
}
// Set event handled
e.Handled = true; // [1]
}
}
Это прекрасно работает для верхнего уровня TreeViewItem
, однако, если дважды щелкнуть дочерний элемент, событие всплывает на дереве, вызывая коллапс всей ветви. Почему событие продолжает пузыриться? Как отмечалось, [1]
Я устанавливаю событие как обработанное.