wpf展开树节点_WPF中展开一个TreeView控件的所有树节点
在 Windows Form 应用中,我们碰到需要展开一个TreeView 控件的所有树节点的时候很简单,微软已经替我们提供了ExpandAll 方法,我们只要简单的一行代码tv_QTree.ExpandAll();就可以了。即 System.Windows.Forms 命名空间的 TreeView.ExpandAll 方法 。
在WPF中,我们会发现,System.Windows.Controls.TreeView 中没有了 ExpandAll 方法。唯一跟展开有关系的属性和方法就是每一个TreeViewItem 中有一个属性IsExpanded 属性。这个属性定义这个节点是否打开。MSDN帮助如下:
Gets or sets whether the nested items in a TreeViewItem are expanded or collapsed. This is a dependency property.
这时候如何办呢? 很简单,自己写个递归,遍历这个树的每一个子节点,然后把每一个子节点的 IsExpanded 设置为 true.
你可以通过以下几个链接看到这个解决方案:
我们可以在上面解决方案基础上进一步发展。
用扩展方法来给 System.Windows.Controls.TreeView 类扩展个 ExpandAll方法方法。有关扩展方法的一些基础知识可以参看我之前的博客:C#3.0 中的扩展方法 (Extension Methods)
我的扩展方法代码如下:
///
/// 郭红俊的扩展方法
///
public static class ExtensionMethods
{
///
///
///
///
public static void ExpandAll(this System.Windows.Controls.TreeView treeView)
{
ExpandInternal(treeView);
}
///
///
///
///
private static void ExpandInternal(System.Windows.Controls.ItemsControl targetItemContainer)
{
if (targetItemContainer == null) return;
if (targetItemContainer.Items == null) return;
for (int i = 0; i < targetItemContainer.Items.Count; i++)
{
System.Windows.Controls.TreeViewItem treeItem = targetItemContainer.Items[i] as System.Windows.Controls.TreeViewItem;
if (treeItem == null) continue;
if (!treeItem.HasItems) continue;
treeItem.IsExpanded = true;
ExpandInternal(treeItem);
}
}
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1773467
wpf展开树节点_WPF中展开一个TreeView控件的所有树节点相关推荐
- WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色 在B/S开发中,对TreeView控件要改变当前选中节点的颜色比较方便,其有相应的SelectedNodeChanged事件 ...
- 让一个图片填满一个控件_如何在Android中实现一个全景图控件(二)
一.背景 在 如何在Android中实现一个全景图控件(一)中,介绍了项目的一些基本情况(有 demo 演示),如果项目对你有帮助,希望文章赏个赞,项目 star 一下. 项目地址:https://g ...
- C# 系统应用之TreeView控件 (一).显示树状磁盘文件目录及加载图标
在C#系统应用毕设U盘防御软件中需要实现文件不可恢复的删除,首先需要实现类似于资源管理器的界面,通过TreeView控件显示"我的电脑"所有磁盘文件树状目录并加载相应图标.显示结果 ...
- android treeview 树形结构,前端开发中,使用TreeView控件创建树形结构
原标题:前端开发中,使用TreeView控件创建树形结构 Wijmo是一款使用Type编写的新一代Java/HTML5控件集.它秉承触控优先的设计理念,在全球率先支持AngularJS,并提供性能卓越 ...
- WinCC笔记:01.TreeView控件 —— (2)连接数据库创建节点
目录 一.最终效果图 二.数据库一览 三.代码 四.代码分析 一.最终效果图 二.数据库一览 这里使用的是SQL Server Tools 18,可以链接到WinCC自动生成的数据库.首先使用WinC ...
- TreeView控件的展开与折叠
在窗体中添加一个TreeView控件,设置CheckBox属性为True,绑定数据 Archive jkj = new Archive();//自定义类 public void Bin ...
- WPF TreeView 控件样式
TreeView 树视图(TreeView)控件以树的方式显示集合,可以显示层次关系. Nodes属性 该属性用于设计TreeView控件的节点. 具体方法 在TreeView的属性栏找到Nodes, ...
- Winform编程中的treeview控件
Winform编程中的treeview控件 treeview基础操作 treeview添加.删除节点操作 treeview节点展开与折叠 treeview节点重命名 treeview获取节点集合并设置 ...
- C#——树视图TreeView控件使用
C#--TreeView控件使用 说明 TreeView Nodes属性 ImageList属性 Scrollable属性 ShowLines属性 ShowPlusMinus属性 ShowRootLi ...
最新文章
- [JS] for-each和map()的区别
- python 异常_一文掌握 Python 异常处理的所有知识点
- 想咸鱼翻身不粘锅?加油
- Java泛型通用常量类案例
- 计算机操作系统——处理机调度算法
- matlab 光谱噪声,环境小卫星高光谱影像条纹噪声去除程序IDL版
- linux查看宽带ip是否动态,linux CentOS系统查看实时宽带的办法
- 手把手教你如何利用Kickstart自动安装虚拟机
- kubernetes的常用命令
- python能当黑客吗_如何成为一名黑客?(转)
- excel报表汇总怎么做?
- Linux系统 应急响应自动化检测工具 GScan ——使用教程
- oracle新增字段时提示数据类型不正确
- 阿里云服务器ECS到底是什么?
- 可变剪切(选择性剪接)rmats2sashimiplot可视化安装与使用
- python3 英文字母单数转复数
- Android 模拟器中的menu键
- RPC框架系列——Avro
- 【个人总结】2020计算机保研经历(北大信科、上交、浙大、南大、中科院)
- 基于C++的OpenCV(八)图像处理