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> { }

  • 相关阅读:
    Oslec Echo Canceller:开源回声消除方案
    引用:SpeechLinks
    打印论文分类
    语音算法方案公司
    推送 push
    Android完美多语言应用,不重启应用,不改变系统语言
    定时任务quartz
    在android平台解决找不到sun.misc.BASE64Enocder的问题
    IOS背景view隐藏键盘
    为ExpandableListView自定义Item
  • 原文地址:https://www.cnblogs.com/zhihai/p/2442762.html
Copyright © 2011-2022 走看看