D22_05_treeview即时创建节点

<Window x:Class="demo.DirectoryTreeView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="DirectoryTreeView" Height="300" Width="300"
    >
    <Grid Margin="3">
        <!--TreeViewItem.Expanded展开事件-->
      <TreeView Name="treeFileSystem" TreeViewItem.Expanded="item_Expanded">
      </TreeView>
    </Grid>
</Window>

DirectoryTreeView

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.IO;

namespace demo
{
    /// <summary>
    /// Interaction logic for DirectoryTreeView.xaml
    /// </summary>

    public partial class DirectoryTreeView : System.Windows.Window
    {

        public DirectoryTreeView()
        {
            InitializeComponent();

            BuildTree();
        }

        private void BuildTree()
        {
            treeFileSystem.Items.Clear();

            foreach (DriveInfo drive in DriveInfo.GetDrives())
            {
                TreeViewItem item = new TreeViewItem();
                item.Tag = drive;
                item.Header = drive.ToString();                

                // This placeholder string is never shown,
                // because the node begins in collapsed state.
                //占位符,表示每个项可以折叠和收缩
                item.Items.Add("X");
                treeFileSystem.Items.Add(item);
            }
        }

        private void item_Expanded(object sender, RoutedEventArgs e)
        {
            TreeViewItem item = (TreeViewItem)e.OriginalSource;
            item.Items.Clear();

            DirectoryInfo dir;

            if (item.Tag is DriveInfo)
            {
                DriveInfo drive = (DriveInfo)item.Tag;
                dir = drive.RootDirectory;
            }
            else
            {
                dir = (DirectoryInfo)item.Tag;
            }

            try
            {
                foreach (DirectoryInfo subDir in dir.GetDirectories())
                {
                    TreeViewItem newItem = new TreeViewItem();
                    newItem.Tag = subDir;
                    newItem.Header = subDir.ToString();
                    newItem.Items.Add("X");
                    item.Items.Add(newItem);

                }
            }
            catch
            {

            }
        }

    }

}
时间: 2024-12-16 08:42:32

D22_05_treeview即时创建节点的相关文章

查找结点,创建节点,插入节点

1.查找节点介绍 2.创建节点 3.插入节点 4.程序(查找,并操作属性与文本节点) 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Insert title here</title> 6 <script type="text/javascript" src="jquery-3.2.1.m

如何在Drupal7中用代码批量创建节点、评论和分类

最近,我忙于一个网站迁移工作.网站是使用某个老式CMS建立的,有一定数量的文章.不同的分类数据和用户评论.我的团队被雇来把这些数据从这个浪费人力物力的老式CMS上完整的迁移到功能更现代的开源Drupal7上.我喜欢干这一类事儿,帮别人拜托封闭专利技术永远是一种快乐.为完成这个任务,我需要通过代码在Drupal7中批量创建节点.评论和分类.这在Drupal 6的版本上只是小菜一碟,但Drupal7核心中引入了entities和fields的概念,所以现在开发起来需要有一点变化. 现在,我贴出这篇文

5、层次关系访问节点和创建节点

层次关系访问节点和创建节点 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta htt

Javascript 笔记与总结(2-10)删除节点,创建节点

[删除节点] 步骤: ① 找到对象 ② 找到他的父对象 parentObj ③ parentObj.removeChild(子对象); [例] <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> #div1{ width: 300px; heigh

js创建节点及其属性

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>创建节点及其属性</title></head><style> #listShow>li ul{ display: none; } #listShow>li>a{ background:#ccc; } li{ list-s

Zookeeper客户端API之创建节点(七)

本篇博客主要讲一下使用Zookeeper原生的客户API来创建一个数据节点. 创建数据节点方法 Zookeeper提供了两个创建数据节点的方法. 同步创建数据节点方法: public String create(final String path, byte data[], List<ACL> acl, CreateMode createMode) throws KeeperException, InterruptedException 异步创建数据节点方法: public void crea

创建节点学习

任务要求 <html> <head><title>创建节点</title></head> <body> <input type="submit" value="add" onclick="add();"> <ul> <li>111</li> <li>222</li> <li>333</l

4.层次访问节点和创建节点

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="

JQuery_DOM 节点操作之创建节点、插入节点

一.创建节点 为了使页面更加智能化,有时我们想动态的在html 结构页面添加一个元素标签,那么在插入之前首先要做的动作就是:创建节点 <script type="text/javascript" src="jquery-1.12.3.min.js"></script> <script> $(function(){ var box = $('<div id="box">节点</div>')