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

时间: 2024-10-01 04:24:37

WPF使用HierarchicalDataTemplate绑定Dictionary生成TreeView的相关文章

wpf直接绑定xml生成应用程序

目的:在vs2010下用wpf完成一个配置工具,配置文件为xml格式,xml文件作为数据源,直接和wpf前台绑定,生成exe后,运行exe能够加载同路径下的xml配置文件并显示 xml文件在项目中的设置不同: 生成操作为内容,始终复制,可以直接修改exe同目录下的xml文件,xml文件内容的变化能体现到exe启动后的界面,exe大小为16K,xml大小为3K, 生成操作为Resource,始终复制,修改xml文件,exe启动后显示内容没有变化,exe大小为18K,可见Resource时,生成的e

Silverlight系列--动态生成DataGrid列 根据动态列绑定Dictionary数据

1.获取表头数据源动态生成DataGrid表头 DataGridTextColumn d = new DataGridTextColumn(); d.Header = itemPriceClass.PriceKindCode + itemPriceClass.PriceKindName; Binding bin = new Binding(); bin.Converter = new RowIndexConverter(); bin.ConverterParameter = itemPriceC

TreeView —WPF—MVVM—HierarchicalDataTemplate

摘要:采用HierarchicalDataTemplate数据模板和treeview在MVVM模式下实现行政区划树, 支持勾选. 一.代码 1.Model using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WpfHierarchicalTemplate { public class Distric

WPF 带CheckBox、图标的TreeView

WPF 带CheckBox.图标的TreeView 在WPF实际项目开发的时候,经常会用到带CheckBox的TreeView,虽然微软在WPF的TreeView中没有提供该功能,但是微软在WPF中提供强大的ItemTemplate模板功能和自定义样式,那我们可以自己写一个这样的控件供自己使用. 我自己写的这个比较简单. 首先写一个供TreeView使用的数据模型,并且实现INotifyPropertyChanged接口,用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知,当属性改

WPF之Menu绑定XML

一.XML文件 <?xml version="1.0" encoding="utf-8" ?> <MenuData xmlns=""> <Operation Name="文件" Gesture="F"> <Operation Name="新建" Gesture="N"> <Operation Name="

[WinForm] DataGridView绑定DataTable,ComboBox列绑定Dictionary

一  需求介绍 一般像枚举类型的数据,我们在数据库里存储着诸如(1.2.3.4-)或者("001"."002"."003"-)此类,但是界面上我们想要显示的是具体的文本内容,以便用户理解使用.所以在从数据库中加载出来的数据DataTable绑定到DataGridView上时,就需要其中一些枚举列采用下拉框,并绑定对应的枚举数据源. 二  具体实现 首先,如果 DataGridView 的 AutoGenerateColumns 为 true 时,

WPF元素的绑定

一.两个元素的简单绑     WPF元素的绑定,是指将两个控件绑在一起,比如利用滑动条Slider,改变刻度时,相应的标签元素中的字体的大小就会增加. 这种元素的绑定,要知道谁是目标元素,谁是源元素.比如用滑动条的刻度大小去绑定标签元素中的字体的大小.这里面滑动条的刻度就是源元素,标签字体大小就是目标元素. 在标签元素中字体大小的属性中就可以去直接绑定,绑定语句是: FontSize="{Binding ElementName=slider1,Path=Value} 解释:Binding Ele

下拉列表框DropDownList绑定Dictionary泛型类

DropDownList绑定Dictionary泛型类 定义一个Dictionary泛型类 /// <summary>    /// 产品类型    /// </summary>    /// <returns></returns>    public Dictionary<string, string> productType()    {        Dictionary<string, string> d = new Dict

ComboBox绑定Dictionary做为数据源

http://www.cnblogs.com/refresh/archive/2012/07/14/2591503.html https://msdn.microsoft.com/zh-cn/library/system.windows.forms.bindingsource(v=vs.80).aspx ComboBox的DataSource的值可设置为 :实现 IList 接口的对象,如 DataSet 或 Array.默认为 空引用(在 Visual Basic 中为 Nothing). 但