0
我有一个4级树形结构,定义如下:我可以自动将HierarchicalDataTemplate项目包装到TreeViewItem中吗?
<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)?
不幸的是,你的假设,即绑定物品会自动一个树型视图里面包裹是不是真的在我的情况(无论出于何种原因)。在TreeView的Items集合的第一个项目上调用GetType()将返回我的类型,而不是类型“TreeViewItem”。有什么想法吗?谢谢!! – Pwninstein 2009-02-27 15:34:12