Как я могу создать иерархический шаблон данных, используя древовидное представление? - PullRequest
0 голосов
/ 07 декабря 2011

Я использую класс, созданный из структур сущностей (таблица категорий в базе данных)

И содержит только три поля:

  • CategoryID
  • CategoryName
  • ParentCategory

И структура сущностей создала мне две навигации: подкатегории и родительские

И когда я загружаю коллекцию в виде дерева, она показывает мне все, где она должна показывать только верхние уровни.

Я думаю, что мне следует создать иерархический шаблон данных, но я действительно не имею представления о его создании.

РЕДАКТИРОВАТЬ: Это похоже на этот случай: Entity Framework - привязка управления представлением дерева WPF

Мой контрольный XAML содержит:

<TreeView x:Name="objectiveTree" ItemsSource="{Binding Objectives}">
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Subcategories}">
            <TextBlock Text="{Binding Path=CategoryName}"
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

Ответы [ 2 ]

0 голосов
/ 30 июня 2017
   <TreeView ItemsSource="{Binding YourItems}"  ItemContainerStyle="
    {StaticResource Level1}">
   <TreeView.ItemTemplate>
   <HierarchicalDataTemplate ItemsSource="{Binding Children}"  
   ItemContainerStyle="{StaticResource Level3}">
   <TextBlock Text="{Binding Name}" />        
   </HierarchicalDataTemplate>
   </TreeView.ItemTemplate>

    </TreeView>

0 голосов
/ 07 декабря 2011

Вы можете попробовать что-то вроде этого:

Код:: 1003 *

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>
...