2012-04-11 49 views
0

我怎樣才能訪問選定樹型視圖的時候我有一個數據綁定的TreeView?HOWTO從獲取的SelectedItem的樹型視圖的TreeView

+0

1.這不是一個問題,如果你想分享知識棒格式。提出問題並**分開回答**。 2.你*真*不應該這樣做(使用反射來訪問私人成員)... – 2012-04-11 07:01:20

+0

如果使用反射或不是每個人都必須自己決定。我認爲這並不總像你想象的那樣糟糕。有些問題不能沒有它來解決清潔(FE提供一個新的工具欄爲Stylekeys其不支持開箱即用的控制 - >在公共符號的源代碼中的註釋讓你甚至可以看到的是,解決方案MS的用途並不總是作爲用戶友好的,因爲他們可能是因爲管理決策) – SACO 2012-04-11 07:18:50

回答

-2

我發現了一個簡單的方法來從即使樹視圖是數據綁定一個TreeView獲得所選的TreeViewItem。關鍵是有點反思。

private static FieldInfo _selectedContainer = typeof(TreeView).GetField("_selectedContainer", BindingFlags.NonPublic | BindingFlags.Instance); 

public static TreeViewItem GetSelectedContainer(this TreeView treeView) 
{ 
    return (TreeViewItem)_selectedContainer.GetValue(treeView); 
} 

我希望這可以幫助別人。

+0

來自MS的官方方式:http://msdn.microsoft.com/en-us/library/ff407130.aspx – SACO 2012-04-11 07:52:57

+0

您的評論是不是真的有幫助。至少寫出一個理由,而不是僅僅因爲使用「反思」而投票。當你使用真正的大樹時,人們會花費數小時的投入,因爲正常解決方案的性能會變慢。默認樹的行爲並不總是你需要的。而不是直接寫自己的控制,爲什麼不使用那裏的可能性? – SACO 2012-04-11 12:44:53

+3

嗯,這顯然是因爲訪問了一個框架類的私有成員是絕對的壞。當微軟決定改變框架實施時,你的軟件如何反應?如果你的軟件已經交付給客戶,會發生什麼?或者,您是否可能創建了生產軟件,並具有最低程度的穩健性。我強烈建議不要在此宣傳您的簡單質量要求。 – Clemens 2012-04-11 14:01:51

相關問題