2011-06-15 58 views
2

我目前有一個簡單的樹視圖,其中包含一個具有多個子節點的父節點。我想知道是否有方法在父樹中查找選定節點的位置。如何在樹視圖中獲取兒童位置?

我目前在樹形視圖上有一個動作事件,當用戶點擊這個孩子時,它打印出所選孩子的字符串值。我已經嘗試使用:

int val = TreeView.SelectedItemProperty.GlobalIndex; 

但它總是返回0。我已經看到了VB一些例子,但我不能似乎得到了同樣的想法在C#中工作。

+0

你在找笛卡爾座標嗎?或像「祖父母\父\小孩」的嵌套路徑? – 2011-06-15 01:25:08

+0

Im loooking它在父節點的順序。如果我的樹視圖看起來是這樣的: >父 -child0 -child1 -child2 -child3 我想要得到的值「2」,如果兒童2用戶點擊(假設計數器從0開始) – Johnston 2011-06-15 01:28:35

+0

爲了通用地思考一個樹視圖,爲什麼需要一個命令?這通常取決於您選擇的演示文稿面板(ContainerTemplate)。有沒有其他方法可以識別你的孩子? – 2011-06-15 01:34:29

回答

0

所以我沒有找到我正在尋找的答案(我可能通過說出位置來將我的問題是什麼弄糊塗了)。無論如何,我解決了它是我得到了孩子選擇的字符串值,並將其與我的列表進行比較。感謝那些回答!

1

我認爲wpf中所有樹視圖問題(以及大多數UI)的答案是構建一個ViewModel。每當你開始抓取可視化樹來尋找你已經綁定的元素時,你就是在艱難地做着事情。一旦你開始使用ItemsContainerGenerator,你必須開始擔心你不應該遇到的很多問題。

您正在綁定到分層結構。如果該結構在每個項目上都有一個選定的項目屬性,並且它綁定到TreeViewItem選定項目,那麼您可以在代碼中獲取所選項目,然後執行其他任何操作。看看類似的問題here