我正在尝试在WPF中的树视图控件中展开前两个项目。树视图使用MVVM模式绑定到集合,我试图扩展第一个项目的树视图,并且当树视图绑定集合发生更改时,它是子项目。
在下面的代码中,'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);
答案 0 :(得分:1)
将TreeViewItem.IsExpanded
属性绑定到ItemConainerStyle
的{{1}}上的VM上的属性(您几乎不需要使用TreeView
)。然后你只需要更改两个目标项目的属性。
由于虚拟化,第二项可能为null,您需要等待第一项的扩展,然后才能生成内部项。