码迷,mamicode.com
首页 > 其他好文 > 详细

D22_05_treeview即时创建节点

时间:2014-11-02 07:06:31      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   os   ar   for   sp   

bubuko.com,布布扣

 

<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
            {
                
            }
        }
       
    }


}

D22_05_treeview即时创建节点

标签:style   blog   http   io   color   os   ar   for   sp   

原文地址:http://www.cnblogs.com/xiepengtest/p/4068322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!