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> { }
代码如下:
<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 找不到引用的程序集
- WPF中的DataTemplate绑定使用的场合
- [WPF]DataGridTemplateColumn使用ComboBox绑定Dictionary细节记录
- WPF后台生成datatemplate(TreeViewItem例子)
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- WPF/Silverlight HierarchicalDataTemplate 模版的使用
- WPF TreeView HierarchicalDataTemplate
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- WPF/Silverlight HierarchicalDataTemplate 模版的使用
- TreeView的数据绑定,用HierarchicalDataTemplate绑定层级
- HierarchicalDataTemplate层次模板绑定XML数据源到Menu和TreeView
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- WPF新手之为HierarchicalDataTemplate生成的Item项添加事件
- [WPF]使用C#代码实现DataTemplate
- WPF数据绑定(ItemTemplate和DataTemplate)
- WPF的ComboBox数据绑定,使用Dictionary作为数据源
- WPF:在DataTemplate中使用DataType