WPF中路由事件

zhangx0602 2012-08-02 04:58:01
private void button1_Click(object sender, RoutedEventArgs e)
{

// textBlock1.Text = new ShowBranchList().GetBranchList();
var 111= new TreeViewItem();
111.Header = "111";
111.Name = "111";
treeView1.Items.Add(111);
sadasd.MouseDoubleClick += new MouseButtonEventHandler(A_MouseButtonEventHandler);
var 222= new TreeViewItem();
222.Header = "222";
222.Name = "222";
222.MouseDoubleClick += new MouseButtonEventHandler(A_MouseButtonEventHandler);
111.Items.Add(SubItem);
var 333= new TreeViewItem();
333.Header = "333";
333.Name = "333";
333.MouseDoubleClick += new MouseButtonEventHandler(A_MouseButtonEventHandler);
222.Items.Add(SubItem2);

}


private void A_MouseButtonEventHandler(object sender, MouseButtonEventArgs e)
{

TreeViewItem asd= sender as TreeViewItem;
MessageBox.Show(asd.Name);
}


点击button1后 界面上会出现一个111的treeview 完全点击展开后是
111
222
333
此时如果我双击111 就会弹出一个含有111 的窗口 但是如果我双击222就会先弹出222 再弹出111 双击333 就是弹出 333 222 111 三个窗口 我知道是因为MouseDoubleClick 是冒泡路由事件 但是我只想弹出我双击的那个TreeViewItem的name 怎么办????
...全文
301 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qlx647625 2013-12-06
  • 打赏
  • 举报
回复
引用 3 楼 KumaPower 的回复:
在 A_MouseButtonEventHandler 中,最后加上 e.Handled=true; 试试
这个正解 , 事件是可以控制扩散的
Bonjour-你好 2013-09-11
  • 打赏
  • 举报
回复
在 A_MouseButtonEventHandler 中,最后加上 e.Handled=true; 试试
V0lD 2013-09-11
  • 打赏
  • 举报
回复
根据当前节点是否选中来避免父节点的路由 TreeViewItem tvi = sender as TreeViewItem; if (!tvi.IsSelected) return;
V0lD 2013-09-11
  • 打赏
  • 举报
回复
自己模拟定义DoubleClick事件

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧