WPF中TreeView动态数据绑定

1、在.xaml文件中添加TreeView控件

<TreeView Name="treeView">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>

 

注释:这里用到TreeView的ItemTemplate属性,通过对HierarchicalDataTemplate进行赋值,实现数据的动态绑定。HierarchicalDataTemplate:是以等级划分的数据模板的意思。
在上面的xaml文件中的Children、Name,在HierarchicalDataTemplate进行树的搭建之前,需要先在cs文件中,定义一个用于绑定的数据源DefinitionNode,如下:

 

2、数据源的定义

public class DefinitionNode
{
    public string Name { get; set; }
    public IList<DefinitionNode> Children { get; set; }
}

上面的两步定义数据源模型及绑定数据


3、定义实际数据

private void Window_Loaded(object sender, RoutedEventArgs e)
{
DefinitionNode dNode = new DefinitionNode()
{
Name = "一级",
Children = new List<DefinitionNode>()
{
new DefinitionNode()
{
Name = "二级",
Children = new List<DefinitionNode>()
{
new DefinitionNode() {Name = "三级" },
new DefinitionNode() {Name = "三级" }
}
}
}
};

DefinitionNode dNode2 = new DefinitionNode()
{
Name = "一级",
Children = new List<DefinitionNode>()
{
new DefinitionNode { Name = "二级" },
new DefinitionNode {Name = "二级" }
}
};
List<DefinitionNode> list = new List<DefinitionNode> { dNode, dNode2 };
treeView.ItemsSource = list;
}



WPF中TreeView动态数据绑定

 

 





上一篇:避免 C# TreeView NodeMouseDoubleClick 双击事件的节点错位的错误行为


下一篇:c#-使用TreeView上的StateImageList防止颜色渗色