目前,我有一个如下所示的树视图:
+Country
+StateA
-CityA
-CityB
+StateB
-CityC
+State
-CityD
城市是树的末端叶子,可以选择并拥有自己的Selected
处理程序。 Country也是可选择的,并且有自己的Selected
处理程序。
处理程序的分配如下:
countryTreeItem.Selected += countrySelectedHandler;
...
cityTreeItem.Selected += citySelectedHandler;
当我选择城市时,也会选择父状态和父国家/地区。这意味着当我选择一个叶子时会选择citySelectedHandler
和countrySelectedHandler
(例如,City A
)
有没有办法确保只选择了叶项?如果我点击CityA
我只希望citySelectedHandler
运行该城市,而不是其祖先的countrySelectedHandler
也可以运行。
但是,当选择“国家/地区”时,我仍然希望countrySelectedHandler
能够运行。简单地删除祖先的处理程序不会做。
谢谢!
答案 0 :(得分:0)
要停止传播事件,您可以设置e.Handled = true
。这样事件就不会冒泡到祖先树项目。