【发布时间】:2014-08-07 00:55:51
【问题描述】:
我有一个基于 MVVM 软件架构的 wpf 应用程序。它由treeView 和ListView 组成。当单击一个treeView 节点时,该节点的所有子节点都会显示在列表视图中。我能够实现这部分。
但是当用户从 listView 中单击一个项目时,该特定项目(它是树视图中的一个节点)应该在树视图中被选中。我不知道该怎么做。 基本上我想将属性 SelectedItem 绑定到 listview 选定项目。但似乎 treeview selectedItem 属性是只读的。
<TreeView Name="tv" ItemsSource="{Binding ChildAndAttributes}" VerticalAlignment="Stretch" Margin="12,12,12,35">
<TreeView.Resources>
<DataTemplate DataType="{x:Type tvcc:NodeViewModel}">
<TextBlock Text="{Binding Text}" />
</DataTemplate>
<DataTemplate DataType="{x:Type tvcc:NodeAttributeViewModel}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding AttributeName}" />
<TextBlock Text="{Binding AttributeValue}" Padding="2,0,0,0" Foreground="Blue" />
</StackPanel>
</DataTemplate>
</TreeView.Resources>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding ChildAndAttributes}">
<ContentControl Content="{Binding}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
【问题讨论】: