Wpf Xaml - TreeView 分层数据模板 - 多个项目源
Posted
技术标签:
【中文标题】Wpf Xaml - TreeView 分层数据模板 - 多个项目源【英文标题】:Wpf Xaml - TreeView Hierarchical Data Templates - multiple item sources 【发布时间】:2011-07-22 12:55:18 【问题描述】:我有一个这样的类(描述 C# 中的类及其字段、方法等):
public class CSharpType
public string Name get; private set;
public List<CSharpMethod> Methods get; private set;
public List<CSharpField> Fields get; private set;
public List<CSharpProperty> Properties get; private set;
....
返回的 CSharppType 集合:
public List<CSharpType> TypeCollection
get
TypeCollection kolekcjaTypow = metricsCollection.Types;
Dictionary<string, CSharpType> typy = kolekcjaTypow.TypeDictionary;
var result = typy.Values.ToList();
return result;
每个字段、方法、属性都有一个“名称”属性 我想要 TreeView(例如):
Person
+ Fields
+ field1 name from Fields collection
+ field2 name from Fields collection
...
+ Methods
....
+ Properties
xaml 应该是什么样子?感谢您的帮助
【问题讨论】:
您查看过msdn.microsoft.com/en-us/library/… 的示例 XAML 吗? 是的。那是我的 TreeView:如果类如下:
public class FatherClass
public string Name get; set;
public List<ChildClass> Children get; set;
public class ChildClass
public string Name get; set;
在窗口的ctor中,我有以下数据:
List<FatherClass> list = new List<FatherClass>();
list.Add(new FatherClass Name = "First Father" );
list.Add(new FatherClass Name = "Second Father" );
list[0].Children = new List<ChildClass>();
list[1].Children = new List<ChildClass>();
list[0].Children.Add(new ChildClass Name = "FirstChild" );
list[0].Children.Add(new ChildClass Name = "SecondChild" );
list[1].Children.Add(new ChildClass Name = "ThirdChild" );
list[1].Children.Add(new ChildClass Name = "ForthChild" );
this.DataContext = list;
那么为了创建分层数据绑定,您应该在资源中定义两个分层数据模板以“捕获”相关数据类型,如下所示:
<Grid.Resources>
<HierarchicalDataTemplate DataType="x:Type my:FatherClass" ItemsSource="Binding Children" >
<TreeViewItem Header="Binding Name" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="x:Type my:ChildClass" >
<TreeViewItem Header="Binding Name" />
</HierarchicalDataTemplate>
</Grid.Resources>
然后,树视图的语法应该是:
<TreeView ItemsSource="Binding ">
</TreeView>
【讨论】:
以上是关于Wpf Xaml - TreeView 分层数据模板 - 多个项目源的主要内容,如果未能解决你的问题,请参考以下文章