<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;
运行结果:
1、在.xaml文件中添加TreeView控件 &lt;TreeView Name="treeView"&gt; &lt;TreeView.ItemTemplate&gt; &lt;HierarchicalDataTemplate ItemsSource="{Binding Children}"&gt; &lt;TextBl...
一级分类:01,02,03
二级分类:0101,0102,0103,0201,0202........
三级分类:010101,010102,010103,010104..........
数据库查询时使用 like '01%'就可得到一级分类01下的所有子分类,非常方便!
如果要列出所有分类的树型结构,只需用一条语句select * from pro_class order by code,
最近在学习
wpf,习惯把自己学习的东西记下来。
刚开始接触的这个控件,有点不知道怎么用。网上看了下,好像大家都觉得不如winform里面的好使。反正,我以前是用mfc做界面的,对c#不熟。网上看了几个例子,自己动手做了一下,现在把大概步骤记录下来。我这里比较简单,没有用什么模式。网上有一篇《使用ViewModel模式来简化
WPF的
TreeView》大家可以看看。
一、一个简单的树
扩展
WPF的
TreeView,完成
数据绑定和拖拽功能。
WPF看了很长时间了,但一直没怎么动手实践,正好任务需要,扩展了
WPF的标准
TreeView控件,并作为基础控件,支持下面的功能:
数据绑定
因为项目中需要用到TreeView控件,由于是第一次在WPF中用到,因此事先在网上搜了很多关于数据绑定的方法介绍,个人经过实际应用,觉得WPF中的HierarchicalDataTemplate定义模板确实好用很多,但是今天在自己的WPF+MVVM项目中使用了另一种方式。代码不妥之处,望赐教。
先说数据绑定:
1、前台Xmal代码:(没有使用模板定义)
<...
Bind
Treeview In
WPF
TreeView Xmal
<
TreeView x:Name="TvWorkItem" Grid.Column="0" Grid.Row="2" Background="Black"
ItemsSource="{Binding MenuDataSource}"
WPF TreeView控件可以通过数据绑定的方式来显示树形结构数据。以下是实现绑定的步骤:
1.定义数据源:可以使用任何.NET集合类作为数据源,例如ObservableCollection、List等等。每个数据项需要包含一个唯一的标识符和一个父级标识符。
2.创建TreeView控件并设置ItemsSource属性为数据源。
3.定义数据模板:为了显示数据项,需要定义一个数据模板,它决定了每个节点的外观。可以使用HierarchicalDataTemplate来实现树形结构。
4.设置ItemContainerStyle属性:设置TreeViewItem的样式,包括选中状态、展开状态等。
下面是一个简单的例子:
<TreeView ItemsSource="{Binding TreeData}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded}"/>
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
其中,TreeData是数据源,Name是节点显示的文本,Children是子节点的集合,IsExpanded和IsSelected是TreeViewItem的属性,用于展开和选中状态的设置。
希望这个回答能对你有所帮助!