【C#】wpf查找父子节点
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media; namespace TestSeagate.Common
{
class UIAssociate
{
/// <summary>
/// 查找第一个父节点是T类型的节点,并返回。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dobj"></param>
/// <returns></returns>
public static T GetAncestor<T>(DependencyObject dobj) where T : FrameworkElement
{
DependencyObject parent = VisualTreeHelper.GetParent(dobj);//可视树 深入内部
while (!(parent is T) && parent != null)
{
parent = VisualTreeHelper.GetParent(parent);
}
if (parent != null)
{
return (T)parent;
} else
{
return null;
}
}
/// <summary>
/// 查找所有满足条件的子节点,
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="depen"></param>
/// <param name="childname"></param>
/// <returns></returns>
public static List<T> GetChildren<T>(DependencyObject depen,string childname=null) where T:FrameworkElement
{
DependencyObject child = null;
List<T> lists = new List<T>();
for(int i=0;i<VisualTreeHelper.GetChildrenCount(depen);i++)
{
child = VisualTreeHelper.GetChild(depen,i);
if((child is T)&&(((T)child).Name==childname||string.IsNullOrEmpty(childname)))
{
lists.Add((T)child);
}
lists.AddRange(GetChildren<T>(child, childname));
}
return lists;
}
}
}
【C#】wpf查找父子节点的更多相关文章
- json树递归js查询json父子节点
		
上代码,直接另存为html打开,看console控制台就可以看到效果了 <!DOCTYPE html> <html lang="en"> <head& ...
 - (转载)JavaScript递归查询 json 树 父子节点
		
在Json中知道某个属性名,想要确定该属性在Json树具体的节点,然后进行操作还是很麻烦的 可以用以下方法找到该属性所在的节点,和父节点 <!DOCTYPE html> <html ...
 - js 查找树节点  数组去重
		
//查找树节点function findData(curOrg, id) { var array = []; if ((typeof curOrg == 'object') && (c ...
 - 查找html节点的方法
		
document.firstChild document.documentElement(兼容性较好) 查找body节点的方法 document.firstChild.lastChild docume ...
 - 答:SQLServer DBA 三十问之一: char、varchar、nvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法,哪个效率高;使用存储     过程和使用T-SQL查询数据有啥不一样;
		
http://www.cnblogs.com/fygh/archive/2011/10/18/2216166.html 1. char.varchar.nvarchar之间的区别(包括用途和空间占用) ...
 - Devexpress TreeList控件绑定显示父子节点对像
		
今天一位同事咨询Devexpress TreeList控件绑定自动显示父子节点对像,但结果是不会显示带父子节点关系,而是将所有的节点作为父节点显示出来了,对像类的代码如下 public class I ...
 - C#用xpath查找某节点
		
C#用xpath查找某节点 从根节点一直下来的相对路径才能确定Xpath的写法. /root/<节点1>/<节点2>//<@属性> Xpath是功能很强大的,但是也 ...
 - 复习下C 链表操作(双向循环链表,查找循环节点)
		
双向循环链表 和 单向循环链表 查找循环节点 思路都是一样. 快慢指针查找法. 理论可参考 c 链表之 快慢指针 查找循环节点 typedef struct Student_Double { ]; ...
 - JQuery的父、子、兄弟节点查找,节点的子节点循环
		
jQuery.parent(expr) //找父元素 jQuery.parents(expr) //找到所有祖先元素,不限于父元素 jQuery.children ...
 
随机推荐
- 【32.89%】【codeforces 719A】Vitya in the Countryside
			
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
 - 【u027】神秘大三角
			
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 判断一个点与已知三角形的位置关系. [输入格式] 前三行:每行一个坐标,表示该三角形的三个顶点 第四行 ...
 - linux mysql 卸载,安装,測试全过程
			
Mysql卸载 yum remove mysql mysql-server mysql-libs compat-mysql51 rm -rf /var/lib/mysql rm /etc/my.cnf ...
 - 《Erlang程序设计》学习笔记-第1章 编译并运行程序
			
http://blog.csdn.net/karl_max/article/details/3976372 1. erlang:halt()可以即刻停止系统运行. 2. q()命令可以完成文件和数据库 ...
 - JVM性能调优实践——JVM篇
			
前言 在遇到实际性能问题时,除了关注系统性能指标.还要结合应用程序的系统的日志.堆栈信息.GClog.threaddump等数据进行问题分析和定位.关于性能指标分析可以参考前一篇JVM性能调优实践-- ...
 - iOS常用加密方法(aes、md5、base64)
			
1.代码 iOS常用加密方法(aes.md5.base64) .AES加密 NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 ...
 - Docker Redis 安装
			
原文:Docker Redis 安装 拉取官方的镜像 docker pull redis:3.2 查看 docker images redis 运行容器 docker run -p 6379:6379 ...
 - scipy 图像处理(scipy.misc、scipy.ndimage)、matplotlib 图像处理
			
from scipy.misc import imread / imsave / imshow imresize / imrotate / imfilter 1. scipy.misc 下的图像处理 ...
 - 【 D3.js 入门系列 --- 0 】 简介及安装
			
家是我的个人博客: http://www.ourd3js.com/ ,csdn博客首页为:http://blog.csdn.net/lzhlzz/.转载请注明出处,谢谢. D3的全称是(Data-D ...
 - element-ui  的 日历 datetimerange 日期格适化 , 适合1版本
			
这家伙把我坑坏了 , 本来吧数据准备好了 , 一掉接口居然不好使 ,日期总是有偏差 , 结果一看是提交的数据有问题 , 后台直接接受的字符串 new 的Date , 2017-12-24T16:00: ...