2017-08-15 56 views
-1

目前,我有一个树状图,看起来像这样:.NET TreeViewItem仅在选择本身时才选择,而不是其子项?

+Country 
    +StateA 
    -CityA 
    -CityB 
    +StateB 
    -CityC 
    +State 
    -CityD 

凡城市是树的叶子节点和可选择,并有自己Selected处理程序。国家也是可选择的,并有自己的Selected处理程序。

处理程序被分配为这样:

countryTreeItem.Selected += countrySelectedHandler; 
... 
cityTreeItem.Selected += citySelectedHandler; 

当我选择一个城市,父国和母国也被选中。这意味着当我选择一片叶子时,选择citySelectedHandlercountrySelectedHandler(说,City A

有没有办法确保只有叶子项目被选中?如果我点击CityA,我只想让该城市的citySelectedHandler运行,而不是其祖先的countrySelectedHandler也运行。

但是,我仍然希望countrySelectedHandler在选择国家(点击)时运行。简单地删除祖先的处理程序不会。

谢谢!

回答

0

要停止事件的传播,可以设置e.Handled = true。这样事件不会冒泡到祖先树项目。

相关问题