TreeView绑定
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
List<NodeInfo> nodeInfoList = new List<NodeInfo>(); public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
Init();
LoadData(new NodeInfo(Guid.Empty, "", Guid.Empty),null);
} public void Init()
{
NodeInfo info1 = new NodeInfo(Guid.NewGuid(),"Node1",Guid.Empty);
NodeInfo info11 = new NodeInfo(Guid.NewGuid(), "Node11", info1.ID);
NodeInfo info111 = new NodeInfo(Guid.NewGuid(), "Node111", info11.ID); NodeInfo info2 = new NodeInfo(Guid.NewGuid(), "Node2", Guid.Empty);
NodeInfo info21 = new NodeInfo(Guid.NewGuid(), "Node21", info2.ID);
NodeInfo info22 = new NodeInfo(Guid.NewGuid(), "Node22", info2.ID); NodeInfo info3 = new NodeInfo(Guid.NewGuid(), "Node3", Guid.Empty);
NodeInfo info31 = new NodeInfo(Guid.NewGuid(), "Node31", info3.ID);
NodeInfo info311 = new NodeInfo(Guid.NewGuid(), "Node311", info31.ID); nodeInfoList.Add(info1);
nodeInfoList.Add(info11);
nodeInfoList.Add(info111);
nodeInfoList.Add(info2);
nodeInfoList.Add(info21);
nodeInfoList.Add(info22);
nodeInfoList.Add(info3);
nodeInfoList.Add(info31);
nodeInfoList.Add(info311);
} public void LoadData(NodeInfo nodeInfo,TreeNode parentNode)
{
List<NodeInfo> list =new List<NodeInfo>();
list = GetChildrenList(nodeInfo);
if (list == null || list.Count == )
{
return;
} foreach (NodeInfo info in list)
{
if (info.ParentID == nodeInfo.ID)
{
TreeNode node = new TreeNode(info.Name);
node.Tag = info;
if (info.ParentID == Guid.Empty)
{
treeView1.Nodes.Add(node);
}
else
{
parentNode.Nodes.Add(node);
}
LoadData(info, node);
}
}
} private List<NodeInfo> GetChildrenList(NodeInfo nodeInfo)
{
List<NodeInfo> list = new List<NodeInfo>();
list = nodeInfoList.FindAll(o => o.ParentID == nodeInfo.ID);
return list;
}
} public class NodeInfo
{
public Guid ID { get; set; }
public string Name { get; set; }
public Guid ParentID { get; set; } public NodeInfo(Guid id, string name, Guid parentId)
{
this.ID = id;
this.Name = name;
this.ParentID = parentId;
}
}
}
TreeView绑定的更多相关文章
- winform treeview 绑定文件夹和文件
转载:http://www.cnblogs.com/zhbsh/archive/2011/05/26/2057733.html #region treeview 绑定文件夹和文件 /// <su ...
- winform treeview绑定数据 DOM操作
form1 public void treeView() { // datatable 定义变量接收 传归来的值 DataTable Father = new BuMenDA().ConSql(); ...
- WPF TreeView绑定字典集合
<TreeView Name="Tree" HorizontalAlignment="Left" Height="269" Width ...
- WPF:TreeView绑定
namespace PostViewer { using System.Collections.ObjectModel; using System.ComponentModel; /// <su ...
- WPF TreeView绑定xaml的写法
方法一 <Window x:Class="TreeViewDemo.MainWindow" xmlns="http://schemas.microsoft.com/ ...
- C# treeview 绑定数据 【转】
private void bindTreeView1() { string sql = "select * from dm_category"; DataTable dt = db ...
- TreeView绑定无限层级关系类
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Bind_TV(TreeView1.Nodes); ...
- C# 中的treeview绑定数据库(递归算法)
近日面试的给我两道题目,一道是IQ测试,第二个就是题目所言 总共两个表 department(id int not null primary key,parentid int,name char(50 ...
- C# treeview绑定
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) ...
随机推荐
- mfc 鼠标、键盘响应事件
一.基本目标 1.有一个基本的MFC程序,点击“关闭”则“关闭”这个程序,这点没什么好讲的,把自带的“取消”按钮,右键->属性的Caption改成“关闭”二字就可以了 2.鼠标在对话框中移动,则 ...
- Tree的两种存储形式
1.xml存储 2.链式结构存储 List<Node> nodes = new List<Node>() { , Name = "中国" }, , Name ...
- cnpm 私服搭建(基于docker)
备注: 使用docker-compose 进行安装 1. 代码clone git clone https://github.com/cnpm/cnpmjs.org.git 2. docker bu ...
- Hyper-V 手动导入虚机配置实例(转载)
原文转载:http://blog.51cto.com/bobzy/980241 Hyper-V提供了很方便的虚机导入和导出功能.平时假如我们想导出虚机,先选中虚机,然后鼠标右键在出现菜单列表中选中“导 ...
- Oracle在线新增索引
Oracle新增索引语法很简单,如果是普通索引的话: create Index IDX_T_WLF on T_WLF(ACTIVITYID,ACTIVETIME) tablespace TBS_VCO ...
- STM32启动过程解读与跟踪验证
经过查阅各种官方文献和对代码进行单步跟踪,详细地叙述了STM32加电启动的具体过程.对于关键性的语句都指明了出处.下面将学习成果分享给大家,由于笔者知识有限,不当之处敬请指出. 为了更好的说明问题,先 ...
- FPGA的新变化
FPGA SoC通过融合FPGA和ASIC两者的元件,跨越了灵活性和性能之间的界限.但随着它们进入高安全性.任务关键型市场,它们也面临着与标准SoC相同的问题,包括在日益复杂的器件中快速传输越来越多的 ...
- java代码-----运用endWith()和start()方法
总结: package com.a.b; //startWith().和endWith()是检查一个字符串是否以一个特定的字符序列开始或结束 public class Sdfs { public st ...
- 使用 Windows 运行时中异步性来始终保持应用程序能够快速流畅地运行
转自:http://blogs.msdn.com/b/windowsappdev_cn/archive/2012/03/26/windows.aspx 人类的思维方式在本质上不是同步的,这直接影响着我 ...
- Math对象及相关方法
Math.abs() 取绝对值 Math.ceil()向上取整 (出现小数点就向上+1) Math.floor()向下取整 Math.round()四舍五入 Math.max(val1,val2,va ...