如何使用树状视图创建分层数据模板
本文关键字:分层 数据 创建 视图 何使用 | 更新日期: 2023-09-27 18:17:03
我使用的是从实体框架(数据库中的Categories表(创建的类
并且只包含三个字段:
- 类别ID
- 类别名称
- ParentCategory
实体框架为我创建了两个导航:子类别和父
当我在树视图中加载集合时,它会显示所有内容,而它应该只显示顶层。
我认为我应该创建一个层次数据模板,但我真的不知道要创建它
编辑:它类似于这些情况:实体框架-绑定WPF树视图控件
我的控件XAML包含:
<TreeView x:Name="objectiveTree" ItemsSource="{Binding Objectives}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Subcategories}">
<TextBlock Text="{Binding Path=CategoryName}"
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
您可以尝试以下操作:
代码背后:
objectiveTree.ItemsSource = (List<YourMainEntity>) _entities;
XAML:
<TreeView x:Name="objectiveTree">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Subcategories}">
<TextBlock Text="{Binding ParentCategory}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding CategoryName}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
<TreeView ItemsSource="{Binding YourItems}" ItemContainerStyle="
{StaticResource Level1}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}"
ItemContainerStyle="{StaticResource Level3}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>