您的位置:首页 > 其它

WPF使用HierarchicalDataTemplate绑定Dictionary生成TreeView

2012-04-11 17:54 459 查看
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> { }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: