zoukankan      html  css  js  c++  java
  • 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> { }

  • 相关阅读:
    .net core
    web api对接小程序基本签名认证
    微信小程序主要开发语言
    C# 用Singleton类构建多线程单例模式
    web api与mvc的区别
    sql 简单分页查询(ror_number() over)
    sql查询当前数据库的所有表名
    C# 身份证号码15位和18位验证
    C# 人民币大写金额转换
    编写类-用户类
  • 原文地址:https://www.cnblogs.com/sjqq/p/6951587.html
Copyright © 2011-2022 走看看