WPF TreeView递归遍历相关方法
/// <summary>
/// 递归改变组织树选中状态。
/// </summary>
/// <param name="org"></param>
private void RecursionOrgDataTreeStatus(OrgData org)
{
foreach (var item in org.Nodes)
{
item.IsChecked = org.IsChecked;
if (item.Nodes.Count > )
{
RecursionOrgDataTreeStatus(item);
}
}
} /// 获取选中的组织数据。
/// </summary>
private void GetCheckedOrgData()
{
foreach (OrgData orgData in orgDataCollection)
{
if(orgData.IsChecked)receiverData.Add(orgData);
if (orgData.HasChild)
{
GetCheckedOrgChildData(orgData);
}
}
}
/// <summary>
/// 获取选中组织中子节点选中的数据。
/// </summary>
private void GetCheckedOrgChildData(OrgData org)
{
foreach (OrgData orgData in org.Nodes)
{
if(orgData.IsChecked)receiverData.Add(orgData);
if (orgData.HasChild) GetCheckedOrgChildData(orgData);
}
} /// <summary>
///递归取父级节点下选中的节点。
/// </summary>
/// <param name="org"></param>
private void GetCheckedOrgDataByOrgParent(OrgData org)
{
if (org == null) return;
if (org.Parent == null && org.IsChecked) receiverData.Add(org);
if (org.Parent != null)
{
foreach (var node in org.Parent.Nodes)
{
if (node.IsChecked) receiverData.Add(node);
}
}
GetCheckedOrgDataByOrgParent(org.Parent);
} /// <summary>
/// 递归删除节点的父级节点。
/// </summary>
/// <param name="org"></param>
private void DeletedOrgData(OrgData org)
{
if (org == null) return;
if (org.Parent == null) return;
receiverData.Remove(org.Parent);
DeletedOrgData(org.Parent);
}
WPF TreeView递归遍历相关方法的更多相关文章
- WPF树形菜单--递归与非递归遍历生成树结构的集合
一.新建了WPF项目作为测试,使用TreeView控件进行界面展示. 第一步创建实体类TreeEntity: public class TreeEntity { private int _mid; p ...
- WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日
进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); Process.S ...
- winform进程、线程、TreeView递归加载
进程: 一般来说,一个程序就是一个进程,不过也有一个程序需要多个进程支持的情况. 进程所使用的类:Process 所需命名空间:System.Diagnostics; 可以通过进行来开启计算机上现有的 ...
- TreeView递归绑定无限分类数据
TreeView递归绑定无限分类数据 实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的: 字段 类型 Id int ParentId int Name N ...
- (实用篇)PHP不用递归遍历目录下所有文件的代码
<?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ fu ...
- 递归遍历XML节点属性和属性值
public static XmlDocument FileMergedIntoXML(string strXmlPathPublic) { string strXmlPathPublic = str ...
- 数据结构二叉树的递归与非递归遍历之java,javascript,php实现可编译(1)java
前一段时间,学习数据结构的各种算法,概念不难理解,只是被C++的指针给弄的犯糊涂,于是用java,web,javascript,分别去实现数据结构的各种算法. 二叉树的遍历,本分享只是以二叉树中的先序 ...
- c#用反射原理递归遍历复杂实体对象
之前在网上看到的都是遍历那种比较简单的实体对象,但是如果有实体嵌套,甚至是包含有List<XXInfo>这种属性的时候就没有办法处理了.通过递归遍历的方式可以完成对复杂实体对象的所有属性的 ...
- C#递归遍历指定目录下文件和文件夹
#region 使用递归查询某路径中的文件结构 public static void CheckFilePath() { ReadFilePath(); } public static void Re ...
随机推荐
- 【CSS3】Advanced6:Attribute Selectors
1.with the attribute abbr[title]{color:red} 2.with the attribute and it's value input[type=text][dis ...
- synchronize学习
这个例子我们看到,java中将对象或者Class对象当做锁 package synchronized简单使用; public class Test7 extends Thread{ public st ...
- Java JDK8 安装及环境变量配置
步骤: 1.下载JDK 2.安装 3.配置环境变量 注意: 1.在选择安装路径时,不要选择C盘或D盘下的[Program Files]目录.此目录名中有空格,会导致配置不成功. 参照链接: http: ...
- grep环境变量常用配置
vim ~/.bashrc GREP_OPTIONS="-irns --exclude-dir=output --exclude=tags --exclude=*.files" 然 ...
- Spark RDD概念学习系列之RDD的容错机制(十七)
RDD的容错机制 RDD实现了基于Lineage的容错机制.RDD的转换关系,构成了compute chain,可以把这个compute chain认为是RDD之间演化的Lineage.在部分计算结果 ...
- oc学习之路----scrollView的代理模式
右图是OC里面scrollView的代理的描述,从这里可以开出来,任何对象都可以作为scorllView的代理对象只要实现了UIScrollViewDelegate这个协议,为什么呢,原因要追究到UI ...
- Redis常用数据类型
Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html Redis最为常用的数据类型主要有以下五种: ●Str ...
- 史上最全的ASP.NET MVC路由配置,以后RouteConfig再弄不懂神仙都难救你啦~
继续延续坑爹标题系列.其实只是把apress.pro.asp.net.mvc.4.framework里的CHAPTER 13翻译过来罢了,当做自己总结吧.内容看看就好,排版就不要吐槽了,反正我知道你也 ...
- 职责链模式vs状态模式区别
状态模式在具体状态里设置了下一状态. 而职责链模式是在客户端代码里设置了下一状态的处理对象. 如果状态模式里的任何一环缺失,将导致事情无法进行下去.职责链模式的链式在客户端连接的,也就是说,如果我们请 ...
- javascript默认中文(汉字/标点)长度均为1的解决
javascript默认中文(汉字/标点)长度均为1 与后台(java)不一致, function calculate(str) { //var str="你好,哈哈哈000111lll&q ...