WPF使用HierarchicalDataTemplate绑定Dictionary生成TreeView

简介: 原文:WPF使用HierarchicalDataTemplate绑定Dictionary生成TreeViewDictionary中的CustomeType是一个集合,将其绑定生成一棵树,树的第一层节点是Dictionary的Key,第二层是CustomeType集合,所有代码用XAML实现。
原文: WPF使用HierarchicalDataTemplate绑定Dictionary生成TreeView

Dictionary<string, CustomeType>中的CustomeType是一个集合,将其绑定生成一棵树,树的第一层节点是Dictionary的Key,第二层是CustomeType集合,所有代码用XAML实现。
代码如下:

<TreeView Name="dictree" ItemsSource="{Binding}">

    <TreeView.Resources>

        <HierarchicalDataTemplate ItemsSource="{Binding Value}" DataType="{x:Type local:Job}">

            <TextBlock Text="{Binding Id}"><TextBlock Text="{Binding Name}"></TextBlock></TextBlock>

        </HierarchicalDataTemplate>

    </TreeView.Resources>

    <TreeView.ItemTemplate>

        <HierarchicalDataTemplate ItemsSource="{Binding Value}">

            <TextBlock Text="{Binding Key}"></TextBlock>

            <HierarchicalDataTemplate.ItemTemplate>

                <DataTemplate>

                    <TextBlock Text="{Binding Name}"></TextBlock>

                </DataTemplate>

            </HierarchicalDataTemplate.ItemTemplate>

        </HierarchicalDataTemplate>

    </TreeView.ItemTemplate>

</TreeView>


Jobs
jobs1 = new Jobs();

jobs1.Add(new Job() { Id = 1, Name = "CEO1"});

jobs1.Add(new Job() { Id = 2, Name = "CEO2"});

jobs1.Add(new Job() { Id = 3, Name = "CEO3"});

 

Jobs jobs2 = new Jobs();

jobs2.Add(new Job() { Id = 1, Name = "CEO1"});

jobs2.Add(new Job() { Id = 2, Name = "CEO2"});

jobs2.Add(new Job() { Id = 3, Name = "CEO3"});

 

Dictionary<string, Jobs> allJob = new Dictionary<string, Jobs>();

allJob.Add("CEO one", jobs1);

allJob.Add("CEO two", jobs2);

dictree.DataContext = allJob;


public class Job

{

    public int Id

    { get; set; }

    public string Name

    { get; set; }

    public string Status

    { get; set; }

}

 

public class Jobs : System.Collections.ObjectModel.ObservableCollection<Job> { }

目录
相关文章
WPF疑难问题之Treeview中HierarchicalDataTemplate多级样式
WPF疑难问题之Treeview中HierarchicalDataTemplate多级样式
354 0
WPF—多重绑定和跨层级绑定
WPF—多重绑定和跨层级绑定
|
3月前
|
开发框架 前端开发 JavaScript
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用
|
C# 数据格式 XML
WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)
原文:WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树) 一、WPF对象级(Window对象)资源的定义与查找 实例一: StaticR...
8441 0
|
数据可视化 C#
WPF技术之TreeView控件
WPF TreeView控件是一个用于显示分层数据的控件,类似于文件浏览器中的目录结构。
177 0
|
C# 数据库
WPF中DataGrid控件绑定数据源
WPF中DataGrid控件绑定数据源
178 0
|
C#
WPF更新绑定字段
WPF更新绑定字段
105 0
|
前端开发 C#
WPF 之 数据与命令绑定 (MVVM方式)
WPF 之 数据与命令绑定 (MVVM方式)
197 0
WPF 之 数据与命令绑定 (MVVM方式)
|
前端开发 C#
WPF TreeView 启动时如何默认选择首个节点
WPF TreeView 启动时如何默认选择首个节点
如何解决WPF中 ScrollViewer 内包含 TreeView 或者 ListBox 等控件时滚轮事件被劫持的问题
如何解决WPF中 ScrollViewer 内包含 TreeView 或者 ListBox 等控件时滚轮事件被劫持的问题