在一个TreeView里, 我想让TreeViewItem的MouseRightButtonDown事件里让这个TreeViewItem的IsSelected属性设为true, 原始代码如下,
private void OnGetFoucus(object sender, RoutedEventArgs e)
{
TreeViewItem smallTreeItem = sender as TreeViewItem;
smallTreeItem.IsSelected = true;
}
出问题, 做完消息响应后, 总是最顶端的treeViewItem的IsSelected为true;
后把代码改成
private void OnGetFoucus(object sender, RoutedEventArgs e)
{
TreeViewItem smallTreeItem = sender as TreeViewItem;
smallTreeItem.IsSelected = true;
e.Handled = true;
}
这个属于冒泡事件的典型, 如果e.Handled不等于True, 就会一直向上冒泡,所以需要会一直到顶.