使用数据绑定。
如果列表视图的内容存储在树视图中显示的对象内,您可以绑定到树的 SelectedItem 属性中。
否则,将树 SelectedItem 绑定到视图模型(或窗口!)中的属性,并在此属性的设置器中更改绑定到列表视图 ItemSource 属性的列表。
您可以在我的博客上看到本系列中的技术,我链接到的文章是带有代码下载链接的最后一篇文章,如果您想要完整的解释,您需要从本系列的开头阅读。
编辑:这是我在一个项目中的做法:(删除了 GridView 定义,因为它在这里不相关)
<TreeView
Name="FolderTree"
Width="300"
ItemsSource="{Binding Root.SubFolders}"
ItemTemplate="{StaticResource FolderTemplate}"/>
<ListView
Name="FileView"
ItemsSource="{Binding ElementName=FolderTree, Path=SelectedItem.Files}">
</ListView>
绑定到树视图的 ItemsSource 的列表包含具有 3 个属性的对象:名称(绑定到 FolderTemplate 中的 TextBlock)、SubFolders(同样绑定到 HierarchicalDataTemplate.ItemsSource 属性)和绑定到 ListView 的文件使用{Binding ElementName=FolderTree, Path=SelectedItem.Files}
请注意,所有列表都不是可观察的集合(因为在这个项目中它们永远不会改变),而是由属性 getter 延迟(按需)加载(因为在这个项目中它们的加载成本很高)。