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 ...
随机推荐
- 【HTML】Intermediate3:Meta Tags
1.Meta tags were the town criers of the Internet Do anything to the content that is presented in the ...
- Java笔记(三)……基础语法
关键字 标识符 在程序中自定义的一些名称 由26个英文字母大小写,数字:0-9,符号:_ $组成 定义合法标识符规则: 数字不可以开头. 不可以使用关键字. Java中严格区分大小写. 注意:在起名字 ...
- Clean Code – Chapter 6 Objects and Data Structures
Data Abstraction Hiding implementation Data/Object Anti-Symmetry Objects hide their data behind abst ...
- tomcat配置多个web网站的配置详解
假如只有一台服务器,需要配置多个web网站(端口不同我还没试),该怎么样配置tomcat呢,其实很简单,只需要将tomcat 下面的 server.xml 中增加两个甚至是多个<Host> ...
- ActiveMQ内存设置和流控
启动脚本设置jvm的内存 if "%ACTIVEMQ_OPTS%" == "" set ACTIVEMQ_OPTS=-Xms1G-Xmx1G -Djava.ut ...
- OC中 self.view.frame.size.height = 100; 不能通过编译的原因
在OC中,当需要修改一个view的尺寸时,通常是通过先将 self.view.fram赋值给一个临时变量,然后修改临时变量,最后将临时变量赋值给 self.view.frame.代码如下: // 1. ...
- Android应用换肤总结
换肤,我们都很熟悉,像XP的主题,塞班的主题.看过国外的一些技术博客,就会发现国内和国外对软件的,或者说移动开发的软件的需求的不同.国外用户注重社交.邮件等功能,国内用户则重视音乐.小说.皮肤等功能, ...
- eclipse 插件之Code Folding
功能: eclipse自带折叠包括方法, import, 注释等得折叠功能, code folding 插件对其增强. 1. 下载插件:( 也可以用link方式, 我的是link安装, jar包网上很 ...
- [React] React Fundamentals: transferPropsTo
the transferPropsTo method lets you easily push properties into your components to easily customize ...
- [Javascript] The Array map method
One very common operation in programming is to iterate through an Array's contents, apply a function ...