如何使用树状视图创建分层数据模板

本文关键字:分层 数据 创建 视图 何使用 | 更新日期: 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>