2011-11-01 43 views
1

我無法得到,只有當前展開的項目。當我嘗試獲取擴展項目時,我從樹視圖中獲取了所有擴展項目,但我不想那樣,我需要獲取單擊的擴展項目。如何獲取WPF中當前展開的treeviewitem

+0

通過'clicked expanded item',你是指當前選擇的項目?如果是這樣,請參閱http://stackoverflow.com/q/1238304/464709。 –

+0

如何確定**當前**擴展項目?因爲你可以展開多個樹形視圖項目,對嗎?我猜你想要的是當前選定的項目。糾正我,如果我錯了。 –

+0

在樹形圖中,你是對的,可以擴展很多項目。我面臨的問題是我只需要我點擊特定項目時擴展的項目。假設在樹形視圖中,我單擊一個根元素,例如School。在學校裏我們有一個「班級」作爲孩子,那麼我們有「學生」作爲「班級」項目的孩子。所以我需要的是當我擴大學校時的「學校」,當我擴大班級時需要「班級」,而「學生」當我擴大學生。但是在這裏,當我用treeviewitem.expand事件擴展Student時,我得到了School和Class,因爲當我擴展Class時它們都被擴展了。 – user979901

回答

2

您需要回復AfterExpand事件。

通過限制點擊,您正在關閉鍵盤用戶。

編輯

對不起,這是的WinForms。這裏是WPF的解決方案:

<TreeView TreeViewItem.Expanded="TreeViewItem_Expanded" /> 
+0

但是Erno不是一個贏的表單事件嗎?它不會在WPF中工作。 –

+0

@AngelWPF - 你是對的,對不起,我加入了我的答案。 –

2

請您treeViewItem.Expanded事件處理程序使用

e.Handled=true; 

。這樣它只會觸發實際項目展開,而不會冒泡到父樹視圖項目的路線。

+0

我們應該合併我們的答案:) –

+0

:-)是的,我們可以... –

相關問題