我有一个4级树结构,定义如下:
<HierarchicalDataTemplate DataType="{x:Type src:Level1}" ItemsSource="{Binding Path=Level2Items}">
<TextBlock Text="{Binding Path=Level1Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type src:Level2}" ItemsSource="{Binding Path=Level3Items}">
<TextBlock Text="{Binding Path=Level2Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type src:Level3}" ItemsSource="{Binding Path=Level4Items}">
<TextBlock Text="{Binding Path=Level3Name}"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type src:Level4}">
<TextBlock Text="{Binding Path=Level4Name}"/>
</DataTemplate>
它很棒。唯一的问题是,我无法以编程方式选择任何绑定项,因为它们不是TreeViewItem类型(因此没有“IsSelected”属性)。有没有办法自动将数据绑定项包装在特定的容器类型中(在这种情况下:TreeViewItem)?
答案 0 :(得分:3)
如果您的商品位于TreeView
,则TreeViewItem
的{{1}}会自动将它们包裹在TreeView
中。您可以执行以下操作以确保ItemContainerGenerator
上的IsSelected
属性映射到数据类的属性:
TreeViewItem