我有一个 TreeView,用户导航它以选择要在网格中显示的项目。简而言之,XAML 如下所示:
<local:TreeViewEx x:Name="theTreeView" ItemsSource="{Binding theData}">
<local:TreeViewEx.ItemTemplate>
<sdk:HierarchicalDataTemplate ItemsSource="{Binding theChildData}">
<TextBlock Text="{Binding Name}"/>
</sdk:HierarchicalDataTemplate>
</local:TreeViewEx.ItemTemplate>
</local:TreeViewEx>
<Grid DataContext="{Binding ElementName=theTreeView, Path=SelectedItem}">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding}" />
<TextBlock Text="{Binding Name}" /></StackPanel>
</Grid>
当用户单击树视图时,视图模型类型名称与 Name 属性的值一起显示。完美的。然而,用户还可以执行树视图的搜索(在Josh Smith之后),它设置了 TreeViewItem 的 IsSelected 属性。一旦发生这种情况,将{Binding}
显示 TreeViewItemEx 而不是 ViewModel 类型名称,当然不会显示 Name 属性。
selectedItem 有时会由 ViewModel 有时是 TreeViewItem 怎么可能?