silverlight中递归构造无限级树treeview+checkbox
两个实体,其实一个实体也能构造出来,我这里是为了增加一个 checkbox
//第一个实体
public class person
{
public int no { get; set; }
public string name { get; set; }
public ObservableCollection<person> child { get; set; }
}
//第二个实体
public class inst ****
{
public int instNo { get; set; } ****
public string instName { get; set; } ****
public int personID { get; set; } ***
}
//xaml界面就放了一个 treeview
<Grid x:Name="LayoutRoot" Background="White">
<sdk:TreeView x:Name="tvshow" HorizontalAlignment="Left" Height="280" Margin="10,10,0,0" VerticalAlignment="Top" Width="367"/>
</Grid>
//cs页面
ObservableCollection<person> List = null;//第一个实体的集合
ObservableCollection<inst> instList = null;//第二个实体的集合 ****
public MainPage()
{
InitializeComponent();
List = new ObservableCollection<person>();
instList = new ObservableCollection<inst>(); ****
person p1 = new person() { no=1,name="1",child=new ObservableCollection<person>()};
person p2 = new person() { no = 2, name = "2", child = new ObservableCollection<person>() };
person p3 = new person() { no = 3, name = "3", child = new ObservableCollection<person>() };
person p4 = new person() { no = 4, name = "4", child = new ObservableCollection<person>() };
person p5 = new person() { no = 5, name = "5", child = new ObservableCollection<person>() };
inst inst1 = new inst() { instNo = 1,personID=1 ,instName = "jigou1" }; ***
inst inst2 = new inst() { instNo = 2, personID = 1, instName = "jigou2" }; ***
inst inst3 = new inst() { instNo = 3, personID = 1, instName = "jigou3" }; ***
inst inst4 = new inst() { instNo = 4, personID = 1, instName = "jigou4" }; ***
inst inst5 = new inst() { instNo = 5, personID = 2, instName = "jigou5" }; ***
inst inst6 = new inst() { instNo = 6, personID = 3, instName = "jigou6" }; ***
inst inst7 = new inst() { instNo = 7, personID = 4, instName = "jigou7" }; ***
p3.child.Add(p4);
p2.child.Add(p3);
List.Add(p1);
List.Add(p2);
List.Add(p5);
instList.Add(inst1); instList.Add(inst2); instList.Add(inst3); instList.Add(inst4); instList.Add(inst5); instList.Add(inst6); instList.Add(inst7); ***
//生成树
foreach (var item in List)
{
tvshow.Items.Add(initView(item));
}
}
//递归函数
TreeViewItem initView(person p)
{
TreeViewItem it = new TreeViewItem();
it.Header = p.name;
foreach (var item in instList)
{
if (p.no == item.personID) ***
{
TreeViewItem cbt = new TreeViewItem(); ***
CheckBox cb = new CheckBox(); ***
cb.Content = item.instName; ***
cbt.Header = cb; ***
it.Items.Add(cbt); ***
}
}
if (p.child.Count>0)
{
foreach (var item in p.child)
{
it.Items.Add(initView(item));
}
}
return it;
}
运行效果:
如果不想 进行 复杂的 构造, 只生成第一的 无限级树, 可以把我 后面加*号的 部分 注释掉,就可以了。
转载于:https://www.cnblogs.com/qiancheng/p/3745536.html
silverlight中递归构造无限级树treeview+checkbox相关推荐
- php如何对 mysql 中text类型拆分存入一个数组_PHP递归实现无限级分类,可选返回字符串和数组...
正 文: 在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 递归,简单的说就是 ...
- 无限级分类之递归查找家谱树
该代码为利用递归查找家谱树,但是建议使用迭代查找效果会更好. <?php /** 无限级找家谱树(向上级寻找)适用范围:面包屑导航****/$area = array(array('id'=&g ...
- jdbc中递归树封装查询数据
jdbc中递归树封装查询 一.递归树封装多次查询 数据库驱动包.jar文件: ①数据库数据准备(使用IDEA(64位)软件和phpstudy软件,即小皮系统(64位)) ②实体:为了使用通用 Dao ...
- 树TreeView控件与DataTable交互添加节点(最高效的方法)
方法一: View Code 本文转载:http://dengzebo.blog.163.com/blog/static/18867406201032141742168/ #region " ...
- 递归构造二叉树和二叉树的遍历
学习递归构造二叉树,并且进行前序遍历. 前序遍历,中序遍历和后序遍历是什么? 遍历的顺序分别如下: 前序遍历:根节点,左子树,右子树: 中序遍历:左子树,根节点,右子树: 后序遍历:左子树,右子树,根 ...
- 【原】TreeView+Checkbox级联操作(IE/FireFox测试通过)
TreeView+Checkbox级联操作 步骤1.前台页面拖放一个Treeview,将其ShowCheckBoxes属性设置为All <asp:TreeView ID="tvCoun ...
- php递归实现层级树状展开,PHP递归实现层级树状展开,php递归层级树状_PHP教程...
PHP递归实现层级树状展开,php递归层级树状 本文实例为大家分享了PHP递归实现层级树状展开的主要代码,供大家参考,具体内容如下 效果图: 实现代码: $arr['id'], 'fid' => ...
- java集合转js数值,基于jsTree的无限级树JSON数据的转换
评论 # re: 基于jsTree的无限级树JSON数据的转换 回复 更多评论 exttree最好了!配合dwr ok 2009-05-05 22:50 | 大罗卜 # re: 基于jsTree的 ...
- C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质...
C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质 事情的经过是这种,博主在用C写一个简单的业务时使用递归,因为粗心而忘了写return.结果发现返回的结 ...
最新文章
- Spring MVC拦截器实现
- 《ZEMAX光学设计超级学习手册》一一2.6 本章小结
- 华为鸿蒙会选择开源吗,而华为已经承诺鸿蒙系统会彻底开源,鸿蒙是开源系统...
- 从一个疯狂下载者变成一个学习者
- jhsdb:JDK 9的新工具
- 初步认识迭代服务器和并发服务器
- python入门(7)Python程序的风格
- linux内存脚本下载,linux tmpfs及消耗内存脚本
- 企业运维实战--k8s学习笔记.k8s容器资源限制 Metrics-Server部署 图形化监控Dashboard部署 K9S的安装
- 基于深度学习的视频修复算法
- windows和ubuntu双系统之双硬盘安装
- Across the great wall we can reach every corner in the world
- 解决pyecharts在pycharm不显示图片
- firefox插件安装位置
- 通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号
- 华为路ws5200设置虚拟服务器,华为路由WS5200怎么配置DMZ主机
- AMD皓龙系列服务器CPU,【彻底感悟】酷睿对AMD系列 双核CPU---皓龙Opteron 1210横向评测...
- 猿团宣布加入中国信息无障碍产品联盟,致力信息无障碍化公益事业
- 三种洗牌算法shuffle
- 考研英语真题笔记 2020,Java数据结构面试题及答案
热门文章
- Windows Phone 7 中的切换应用
- 工作流编程循序渐进(3:While活动)
- 《那些年啊,那些事——一个程序员的奋斗史15》
- 用variance和bias解释其overfitting
- 论文笔记 《Maxout Networks》 《Network In Network》
- 在应用程序中使用虚拟内存——Windows核心编程学习手札之十五
- jinfo 的相关使用 || 两个经典的参数: -Xms -Xmx
- JDK源码解析 —— IO流中的包装类使用到了装饰者模式
- Oracle 数据库表空间不足拓展方法实例演示,表空间剩余大小查看,通过新增表空间文件拓展表空间,表空间文件路径查看
- Python 套接字-判断socket服务端有没有关闭的方法实例演示,查看socket运行状态