【发布时间】:2010-08-09 21:57:39
【问题描述】:
我正在开发一个基于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] 所述,我将事件设置为已处理。
【问题讨论】:
标签: c# wpf treeview treeviewitem routedevent