我目前有一個簡單的樹視圖,其中包含一個具有多個子節點的父節點。我想知道是否有方法在父樹中查找選定節點的位置。如何在樹視圖中獲取兒童位置?
我目前在樹形視圖上有一個動作事件,當用戶點擊這個孩子時,它打印出所選孩子的字符串值。我已經嘗試使用:
int val = TreeView.SelectedItemProperty.GlobalIndex;
但它總是返回0。我已經看到了VB一些例子,但我不能似乎得到了同樣的想法在C#中工作。
我目前有一個簡單的樹視圖,其中包含一個具有多個子節點的父節點。我想知道是否有方法在父樹中查找選定節點的位置。如何在樹視圖中獲取兒童位置?
我目前在樹形視圖上有一個動作事件,當用戶點擊這個孩子時,它打印出所選孩子的字符串值。我已經嘗試使用:
int val = TreeView.SelectedItemProperty.GlobalIndex;
但它總是返回0。我已經看到了VB一些例子,但我不能似乎得到了同樣的想法在C#中工作。
所以我沒有找到我正在尋找的答案(我可能通過說出位置來將我的問題是什麼弄糊塗了)。無論如何,我解決了它是我得到了孩子選擇的字符串值,並將其與我的列表進行比較。感謝那些回答!
您必須使用TreeView的ItemContainerGenerator屬性。
http://msdn.microsoft.com/en-us/library/system.windows.controls.itemcontainergenerator.aspx
見:ContainerFromIndex和IndexFromContainer
注意,每個樹型視圖也有一個ItemContainerGenerator(它的一個ItemsControl),所以你必須,如果你有多個級別遞歸搜索下來的樹。
我認爲wpf中所有樹視圖問題(以及大多數UI)的答案是構建一個ViewModel。每當你開始抓取可視化樹來尋找你已經綁定的元素時,你就是在艱難地做着事情。一旦你開始使用ItemsContainerGenerator,你必須開始擔心你不應該遇到的很多問題。
您正在綁定到分層結構。如果該結構在每個項目上都有一個選定的項目屬性,並且它綁定到TreeViewItem選定項目,那麼您可以在代碼中獲取所選項目,然後執行其他任何操作。看看類似的問題here。
你在找笛卡爾座標嗎?或像「祖父母\父\小孩」的嵌套路徑? – 2011-06-15 01:25:08
Im loooking它在父節點的順序。如果我的樹視圖看起來是這樣的: >父 -child0 -child1 -child2 -child3 我想要得到的值「2」,如果兒童2用戶點擊(假設計數器從0開始) – Johnston 2011-06-15 01:28:35
爲了通用地思考一個樹視圖,爲什麼需要一個命令?這通常取決於您選擇的演示文稿面板(ContainerTemplate)。有沒有其他方法可以識別你的孩子? – 2011-06-15 01:34:29