2017-08-15 53 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。這樣事件不會冒泡到祖先樹項目。

相關問題