Beg*_*Wpf 5 wpf treeview controls
我有一个这样的类(描述 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; }
....
}
Run Code Online (Sandbox Code Playgroud)
返回的 CShartpType 集合:
public List<CSharpType> TypeCollection
{
get
{
TypeCollection kolekcjaTypow = metricsCollection.Types;
Dictionary<string, CSharpType> typy = kolekcjaTypow.TypeDictionary;
var result = typy.Values.ToList();
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
每个字段、方法、属性都有一个“名称”属性,我想要 TreeView(例如):
Person
+ Fields
+ field1 name from Fields collection
+ field2 name from Fields collection
...
+ Methods
....
+ Properties
Run Code Online (Sandbox Code Playgroud)
xaml 看起来如何?感谢您的帮助
如果类如下:
public class FatherClass
{
public string Name { get; set; }
public List<ChildClass> Children { get; set; }
}
public class ChildClass
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在窗口的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;
Run Code Online (Sandbox Code Playgroud)
然后,为了创建分层数据绑定,您应该在资源中定义两个分层数据模板来“捕获”相关数据类型,如下所示:
<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>
Run Code Online (Sandbox Code Playgroud)
然后,树视图的语法应该是:
<TreeView ItemsSource="{Binding }">
</TreeView>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4061 次 |
最近记录: |