我有一个树视图创建使用HierarchicalDataTemplate有您可以在下面的代码中看到:WPF树视图以分层数据模板和多类型
<TreeView ItemsSource="{Binding AllFolders}" SelectedItemChanged="TreeView_SelectedItemChanged"/>
而且
<HierarchicalDataTemplate DataType="{x:Type model:Folder}" ItemsSource="{Binding Tools}">
<StackPanel Orientation="Horizontal">
<Image Source="{StaticResource ResourceKey=icon}"/>
<TextBlock Text="{Binding Title}"/>
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type model:Tool}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"></TextBlock>
</StackPanel>
</DataTemplate>
它运作良好,但现在我需要在文件夹中添加其他类型的对象以使树视图如下所示:
- 文件夹1 个
- 文件夹2
- 工具
- 工具1
- 工具2
- 位置
- 位置1
- 位置2
- 工具
- 文件夹3
工具和位置必须使用不同的DataTemplate。他们都是IList包含在文件夹类(IList<Tool>
和IList<Location>
)。
它甚至有可能做到这一点? 我该如何做到这一点?
感谢您的帮助
谢谢,并告诉我,如果我错了,这种解决方案将两种类型(工具和位置)混合使用。即使我对集合进行排序,我也永远无法在树视图中只展开一种类型,对吧? – Desnoxav 2014-09-25 15:46:30
您的更新很好地描述了我想要做的事情。但主要问题是如何技术性地创建分层数据模板。它只能有一个ItemsSource。 – Desnoxav 2014-09-26 15:32:17