代码改变世界

冒泡消息处理.

2007-02-05 09:39  爱车龟速兔  阅读(197)  评论(0编辑  收藏  举报

在一个TreeView, 我想让TreeViewItemMouseRightButtonDown事件里让这个TreeViewItemIsSelected属性设为true, 原始代码如下,

private void OnGetFoucus(object sender, RoutedEventArgs e)

{

    TreeViewItem smallTreeItem = sender as TreeViewItem;

    smallTreeItem.IsSelected = true;         

}

出问题, 做完消息响应后, 总是最顶端的treeViewItemIsSelectedtrue;

后把代码改成

private void OnGetFoucus(object sender, RoutedEventArgs e)

{

     TreeViewItem smallTreeItem = sender as TreeViewItem;

     smallTreeItem.IsSelected = true;

     e.Handled = true;

}
这个属于冒泡事件的典型, 如果e.Handled不等于True, 就会一直向上冒泡,所以需要会一直到顶.