2009-07-13 58 views
2

我正在使用TreeView來讓用戶更輕鬆地導航複雜的數據結構。我正在嘗試向我的應用程序添加一項功能,以便我的用戶可以通過單擊工具欄上的按鈕將新項目添加到數據結構中。這個新項目有3個級別,每個級別有1個項目。我想選擇最低級別的項目。將選擇設置爲WPF TreeView中新添加的項目

添加數據不是問題,我只是在集合中添加一個新項目,該項目與具體的TreeView綁定。我可以通過手動查找該項目瀏覽TreeView,所以我知道添加的作品。現在,我想以編程方式設置新項目的選擇。因此,用戶可以立即更改元素中的默認設置。

我已經做了一些測試,我發現,設置選擇喜歡的東西做:

var obj = TreeView.ItemContainerGenerator 
       .ContainerFromItem(selectedObject) as TreeViewItem; 
obj.IsSelected = true; 

我已經盡我加載方法後直接添加該代碼。添加函數返回新對象,並將其放入selectedObject。 Add-method將一個ObservableCollection添加到合適的事件中。

但是,obj在添加後直接爲空。

我已經嘗試在LayoutUpdated事件中設置選擇,但在這種情況下,早期代碼中的obj變量總是爲空。

我想我可能會錯過這裏的東西。有沒有人有關於如何將新項目添加到有界集合並在TreeView中選擇該項目的想法?

回答

2

您可能想閱讀約什史密斯關於使用WPF中的treeview的this article。他演示瞭如何使用可以輕鬆適應您的需求的IsSelected屬性,並使用MVVM模式。

相關問題