WPF使用HierarchicalDataTemplate绑定Dictionary生成TreeView
2017-06-06 14:52
555 查看
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> { }
代码如下:
<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使用HierarchicalDataTemplate绑定Dictionary生成TreeView
- WPF中Treeview使用HierarchicalDataTemplate模板之后内容不充满
- TreeView的数据绑定,用HierarchicalDataTemplate绑定层级
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- WPF TreeView HierarchicalDataTemplate
- WPF新手之为HierarchicalDataTemplate生成的Item项添加事件
- WPF中的DataTemplate绑定使用的场合
- TreeView 使用 HierarchicalDataTemplate 找不到引用的程序集
- WPF/Silverlight HierarchicalDataTemplate 模版的使用
- HierarchicalDataTemplate层次模板绑定XML数据源到Menu和TreeView
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- WPF/Silverlight HierarchicalDataTemplate 模版的使用
- [WPF]DataGridTemplateColumn使用ComboBox绑定Dictionary细节记录
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- WPF后台生成datatemplate(TreeViewItem例子)
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- WPF使用 ObjectDataProvider 为方法作为绑定数据源
- WPF DataTemplate绑定的简单学习
- WPF中将Dictionary<T,T>类型做为数据源绑定到TreeView上
- WPF-控件-DataTemplate生成的控件