2012-01-16 92 views
0

我想展開WPF中樹視圖控件中的前兩項。樹視圖綁定到使用MVVM模式的集合,並且我試圖展開第一個項目的樹視圖,並且當樹視圖綁定集合發生更改時,它是子項目。在WPF TreeView中展開樹視圖項目

在下面的代碼中,'secondTreeViewItem'總是爲空,任何想法爲什麼?

var firstAssembly = (Assembly)assemblyTree.Items[0]; 
var firstTreeViewItem = (TreeViewItem)assemblyTree.ItemContainerGenerator.ContainerFromItem(firstAssembly); 
firstTreeViewItem.IsExpanded = true; 

var secondAssembly = (Assembly)firstTreeViewItem.Items[0]; 
var secondTreeViewItem = (TreeViewItem)firstTreeViewItem.ItemContainerGenerator.ContainerFromItem(secondAssembly); 

回答

1

綁定TreeViewItem.IsExpanded屬性的屬性在VM中TreeViewItemConainerStyle(你應該幾乎從來沒有需要使用ItemContainerGenerator)。然後你只需要改變兩個目標項目的屬性。

由於虛擬化,第二項可能爲空,因此需要等待第一項的擴展才會生成內部項目。