我在我的应用程序中得到了以下设置;
5种数据类型;
现在,Area总是最高级别,但可以包含所有其他四种类型的孩子 - 所以我添加了一个区域列表,并且在每个区域下面都会有一个其他类型的嵌套列表。
系统将始终是区域的子级,但可以包含最后三种类型的子级 - 依此类推。
现在我想用这个嵌套布局填充树视图。我已经使用其他类型的嵌套列表创建了一个区域列表 - 但是如何获得树视图以显示此层次结构?
答案 0 :(得分:0)
您正在寻找HierarchicalDataTemplate
和DataTemplate
。
因为您的TreeView应该支持多个不同的模板,所以应该放置它们是TreeView的资源。
<TreeView ItemsSource="{Binding Path=CollectionWithRootElement}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type blabla:Area}" ItemsSource="{Binding Path=SubItemsCollectionOfThisType}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="Area Type" />
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type blabla:System}" ItemsSource="{Binding Path=SubItemsCollectionOfThisType}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="System Type" />
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type blabla:Signal}" >
<StackPanel Orientation="Horizontal">
<TextBlock Text="Signal Type" />
</StackPanel>
</DataTemplate>
</TreeView.Resources>
</TreeView>
有几点需要注意:
<Window xmlns:blabla="clr-namespace:MyApp.Namespace"></Window>