.NET TreeViewItem仅在选择自身时选择,而不是其子项?

时间:2017-08-15 22:02:35

标签: c# .net wpf treeviewitem

目前,我有一个如下所示的树视图:

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

城市是树的末端叶子,可以选择并拥有自己的Selected处理程序。 Country也是可选择的,并且有自己的Selected处理程序。

处理程序的分配如下:

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

当我选择城市时,也会选择父状态和父国家/地区。这意味着当我选择一个叶子时会选择citySelectedHandlercountrySelectedHandler(例如,City A

有没有办法确保只选择了叶项?如果我点击CityA我只希望citySelectedHandler运行该城市,而不是其祖先的countrySelectedHandler也可以运行。

但是,当选择“国家/地区”时,我仍然希望countrySelectedHandler能够运行。简单地删除祖先的处理程序不会做。

谢谢!

1 个答案:

答案 0 :(得分:0)

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