TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件

TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件。TreeViewItem 可以包含一个或多 TreeViewItem 对象作为后代。TreeView 定义为 TreeViewItem 对象层次结构。

TreeView 可以通过绑定到数据源并使用 HierarchicalDataTemplate 对象填充其树。数据源的示例包括 XmlDataProvider 和 ObservableCollection <T>对象。

一个简单的效果展示

我们先绑定一个简单的xml文件:xml如下

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <Data xmnl="">
  3. <Grade Name="一年级">
  4. <Class Name="甲班">
  5. <Group Name="A组"></Group>
  6. <Group Name="B组"></Group>
  7. <Group Name="C组"></Group>
  8. <Group Name="D组"></Group>
  9. </Class>
  10. <Class Name="乙班">
  11. <Group Name="A组"></Group>
  12. <Group Name="B组"></Group>
  13. <Group Name="C组"></Group>
  14. <Group Name="D组"></Group>
  15. </Class>
  16. </Grade>
  17. <Grade Name="二年级">
  18. <Class Name="乙班">
  19. <Group Name="A组"></Group>
  20. <Group Name="B组"></Group>
  21. <Group Name="C组"></Group>
  22. <Group Name="D组"></Group>
  23. </Class>
  24. </Grade>
  25. <Grade Name="三年级">
  26. <Class Name="丙班">
  27. <Group Name="A组"></Group>
  28. <Group Name="B组"></Group>
  29. <Group Name="C组"></Group>
  30. <Group Name="D组"></Group>
  31. </Class>
  32. </Grade>
  33. </Data>

然后我们在xaml文件来定义数据模板:

  1. <Window.Resources >
  2. <!--数据源-->
  3. <XmlDataProvider x:Key="ds" Source="XMLFile1.xml" XPath="Data/Grade"/>
  4. <!--年纪模板-->
  5. <HierarchicalDataTemplate DataType="Grade" ItemsSource="{Binding XPath=Class}">
  6. <TextBlock Text="{Binding XPath=@Name}"></TextBlock>
  7. </HierarchicalDataTemplate>
  8. <!--班级模板-->
  9. <HierarchicalDataTemplate DataType="Class" ItemsSource="{Binding XPath=Group}">
  10. <RadioButton GroupName="gn" Content="{Binding XPath=@Name}"></RadioButton>
  11. </HierarchicalDataTemplate>
  12. <!--小组模板-->
  13. <HierarchicalDataTemplate DataType="Group" ItemsSource="{Binding XPath=Student}">
  14. <CheckBox Content="{Binding XPath=@Name}"></CheckBox>
  15. </HierarchicalDataTemplate>
  16. </Window.Resources>

然后现在通过Treeview控件进行绑定即可:

  1. <TreeView ItemsSource="{Binding Source={StaticResource ds}}" Height="" HorizontalAlignment="Left" Margin="12,46,0,0" Name="listView1" VerticalAlignment="Top" Width="" />

很简单吧,就那么一下就绑定好了

关于TreeView还有更多用法,这只是简单用法,更多请http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.controls.treeview.aspx

简单示例下载:http://files.cnblogs.com/BABLOVE/Treeview%E6%8E%A7%E4%BB%B6%E6%A8%A1%E6%9D%BF%E7%AE%80%E5%8D%95%E8%BF%90%E7%94%A8.rar

WPF之Treeview控件简单用法的更多相关文章

  1. WPF中TreeView控件的使用案例

    WPF总体来说还是比较方便的,其中变化最大的主要是Listview和Treeview控件,而且TreeView似乎在WPF是一个备受指责的控件,很多人说他不好用.我这个demo主要是在wpf中使用Tr ...

  2. WPF中TreeView控件数据绑定和后台动态添加数据(二)

    写在前面:在(一)中,介绍了TreeView控件MVVM模式下数据绑定的方法.在这篇文章中,将总结给节点添加事件的方法,这样说有些不对,总之实现的效果就是点击某个节点,将出现对应于该节点的页面或者数据 ...

  3. WPF中TreeView控件数据绑定和后台动态添加数据(一)

    数据绑定: 更新内容:补充在MVVM模式上的TreeView控件数据绑定的代码. xaml代码: <TreeView Name="syntaxTree" ItemsSourc ...

  4. WPF中TreeView控件SelectedItemChanged方法的MVVM绑定

    问题描述:左侧treeview控件中点击不同类别的节点时,右侧的页面会显示不同的权限.比如对于My Publications,拥有Modify和Delete两种权限,对于My Subscription ...

  5. WPF 自定义TreeView控件样式,仿QQ联系人列表

    一.前言 TreeView控件在项目中使用比较频繁,普通的TreeView并不能满足我们的需求.因此我们需要滴对TreeView进行改造.下面的内容将介绍仿QQ联系人TreeView样式及TreeVi ...

  6. 《WPF》Expander控件简单美化

    示例图: Expander控件功能很常见, 一般用于系统左侧的菜单收缩面板. 1.主要的组成 一个头部(header) 和 一个 内容(content) 组成. <Expander Expand ...

  7. WPF从我炫系列4---装饰控件的用法

    这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...

  8. WPF自定义分页控件,样式自定义,简单易用

    WPF自定义分页控件 做了许久伸手党,终于有机会贡献一波,搜索一下WPF分页控件,还是多,但是不太通用,主要就是样式问题,这个WPF很好解决,还有一个就是分页控件嘛,只关心几个数字的变动就行了,把页码 ...

  9. 抛砖引玉 【镜像控件】 WPF实现毛玻璃控件不要太简单

    原文:抛砖引玉 [镜像控件] WPF实现毛玻璃控件不要太简单 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Vblegend_2013/articl ...

随机推荐

  1. PAT 1004. Counting Leaves (30)

    A family hierarchy is usually presented by a pedigree tree.  Your job is to count those family membe ...

  2. 安装MYSQL 出现Error 1045 access denied 的解决方法

    操作系统:WINDOWS10 系统 数据库版本:mysql 5.x 提示:access denied for user 'root'@'localhost' using password yes/no ...

  3. 怎样克服 JavaScript 框架疲劳?

    [编者按]Tero Parviainen 著有 Build Your Own AngularJS,曾两次组织 Clojure CUP 竞赛,在 Twitter 上有近两千名关注者. 在本文中.Tero ...

  4. ubuntu 14.04 chromium,firefox 怎样正确安装Adobe flash player

    一.firefox 正确安装Adobe flash player 有时候我们须要在Ubuntu下採用手动安装一些软件,比方Firefox的Flash插件.Adobe® Flash® Player 是一 ...

  5. OpenGL ES2学习笔记(9)-- 转换矩阵

    线性代数是计算机图形学的一块基石,本篇文章总结如何在Shader中使用矩阵来移动.缩放和旋转顶点. 代码和效果 把下面的代码复制到OpenGL Console里: import java.nio.By ...

  6. 【MongoDB安装和基础学习系列】

    转:http://www.cnblogs.com/lipan/archive/2011/03/08/1977691.html 系列目录 MongoDB学习笔记(一) MongoDB介绍及安装     ...

  7. UVA - 10239 The Book-shelver&#39;s Problem

    Description Problem D The Book-shelver's Problem Input: standard input Output: standard output Time ...

  8. 两款Mac下的视频下载利器

    1 iSkysoft iTube Studio 2.jaksta mac

  9. cocos2dx 2.14使用UUID

    1首先要清楚objective-c 与c/ c++混编的规则 关于c/c++/obj-c的混合使用 1)obj-c的编译器处理后缀为m的文件时,可以识别obj-c和c的代码,处理mm文件可以识别obj ...

  10. jwplayer 源代码重新编译

    由于原来下载的jwplaery播放器中带有官方的播放统计信息,需要从官方加载统计js脚本,影响播放器加载速度,因此从官方github站点上下载播放器进行重新编译操作,现记录过程如下. 下载最新的jwp ...