2012-01-16 49 views
0

WPFのツリービューコントロールで最初の2つの項目を展開しようとしています。ツリービューはMVVMパターンを使用してコレクションにバインドされており、最初のアイテムのツリービューを展開しようとしています。WPFのツリービュー項目を展開するTreeView

次のコードでは、 'secondTreeViewItem'は常にnullです。理由は何ですか?

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

バインドTreeViewItemConainerStyleであなたのVMのプロパティにTreeViewItem.IsExpandedプロパティ(あなたがItemContainerGeneratorを使用する必要がありませんほとんどないはずです)。次に、2つのターゲットアイテムのプロパティを変更するだけです。

仮想化のために2番目のアイテムがおそらくヌルであるため、最初のアイテムの展開を待ってから内部アイテムが生成されるまで待つ必要があります。

関連する問題