<TreeView Grid.Row="0" Grid.Column="0" x:Name="FolderView" Canvas.Top="1" Canvas.Bottom="1" VerticalAlignment="Stretch"
MouseLeftButtonUp="FolderView_MouseLeftButtonUp" Margin="5,5,15,5" Width="500">

FolderView_MouseLeftButtonUp 鼠标事件

private void FolderView_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
TreeViewData selectItem = FolderView.SelectedItem as TreeViewData;
if (selectItem != null)
{
txtSelectPath.Text = selectItem.TagValue.ToString();
selectItem.IsSelected = true;
selectItem.IsExpanded = true;
if (txtSelectPath.Text != "我的电脑") {
if (selectItem.Children.Count <= 0)
{
selectItem.Children = LoadItemFiles(selectItem);
if (selectItem.Children.Count > 0)
{
FolderView.Items.Refresh();
}
}
}
}
}

private List<TreeViewData> LoadItemFiles(TreeViewData item)
{
List<TreeViewData> rootList = new List<TreeViewData>();
// 获取完整路径
var fullPath = (String)item.TagValue;
#region Get Folders
// 为目录创建一个空白列表
var directories = new List<String>();
// 尝试从文件夹中获取目录 // try异常处理,忽略出现的任何问题
try
{
var dirs = Directory.GetDirectories(fullPath);
{
if (dirs.Length > 0)
directories.AddRange(dirs);
}
}
catch
{
}
#endregion
// 为目录做迭代,添加目录
directories.ForEach(directoryPath =>
{
// 创建目录项
var subItem = new TreeViewItem()
{
// 将标题设置为文件夹名称
Header = GetFileFolderName(directoryPath),
// 标记为完整路径
Tag = directoryPath
};

TreeViewData itemData = new TreeViewData();
itemData.HeaderName = GetFileFolderName(directoryPath);
itemData.TagValue = directoryPath;
itemData.ImgName = "Images/file.png";
itemData.Children = new List<TreeViewData>();
rootList.Add(itemData);
});
return rootList;
}

public static string GetFileFolderName(string path)
{

// 如果没有路径,则返回空
if (string.IsNullOrEmpty(path))
return string.Empty;
var files = path.Split('\\');
return files[files.Count() - 1];
}

wpf treeview 选中节点加载数据并绑定的更多相关文章

  1. Android Launcher分析和修改4——初始化加载数据

    上面一篇文章说了Launcher是如何被启动的,Launcher启动的过程主要是加载界面数据然后显示出来, 界面数据都是系统APP有关的数据,都是从Launcher的数据库读取,下面我们详细分析Lau ...

  2. 解决easyui datagrid加载数据时,checkbox列没有根据checkbox的值来确定是否选中

    背景:   昨天帮朋友做一个easyui datagrid的小实例时,才发现easyui datagrid的checkbox列,没有根据值为true或false来选中checkbox,当时感觉太让人失 ...

  3. [Ext.Net]TreePanel 异步加载数据

    异步加载数据指的是页面加载的时候只显示根目录,点击根目录再去加载其子目录. 下面就来介绍下这种异步加载的树结构要怎么实现 现将例子的图 QQ图片20131225134353.jpg (12.1 KB, ...

  4. selenuim和phantonJs处理网页动态加载数据的爬取

    一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python # -*- coding:utf-8 -* ...

  5. 爬虫开发6.selenuim和phantonJs处理网页动态加载数据的爬取

    selenuim和phantonJs处理网页动态加载数据的爬取阅读量: 1203 动态数据加载处理 一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/ ...

  6. 淘宝购物车页面 智能搜索框Ajax异步加载数据

    如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区 ...

  7. D3树状图异步按需加载数据

    D3.js这个绘图工具,功能强大不必多说,完全一个Data Driven Document的绘图工具,用户可以按照自己的数据以及希望实现的图形,随心所欲的绘图. 图形绘制,D3默认采用的是异步加载,但 ...

  8. sencha treestore 取消自动加载数据

    gridstore在设置了autoLoad=false后不会自动加载数据,但是treestore不行,后来发现删掉root里的expanded:true后就可以了.但是界面上树没有展开,需在store ...

  9. ListView用法及加载数据时的闪烁问题和加载数据过慢问题

    ListView介绍及添加数据时的闪烁问题 1.     ListView类 1.1 ListView常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示 ...

  10. Jquery zTree结合Asp.net实现异步加载数据

    zTree结合Asp.net实现异步加载数据 实现简单操作 zTree 下载 api 访问 :http://www.ztree.me/v3/main.php 例子中用到json数据转化 newtons ...

随机推荐

  1. LeetCode-19 删除链表倒数第N个结点

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list 题目描述 给你一个链表,删除链表 ...

  2. php 中解析xml文件

        public function xmltoarr($path) {//xml字符串转数组         $xml= $path;//XML文件         $objectxml = si ...

  3. 第二周作业N67044-张铭扬

    1. 运行脚本可以显示出本机的ip地址 2. 如果ip地址中有3这个数字,那么就打印出当前的系统时间 3. 如果ip地址中不含3这个数字,就批量建立用户magedu_00, magedu_01, .. ...

  4. 分时问候——时间类、if语句

    import java.time.LocalTime; public class Hello { public static void main(String[] args) { LocalTime ...

  5. MyCat2 分表分库

    1.添加数据库.存储数据源 我们在读写分离那边已经生成过,不需要在执行,如果没有执行过,执行下面注解,我们这边重新创建一个数据库db1 /*+ mycat:createDatasource{ &quo ...

  6. GitLab服务器修改用户密码

    重置密码: 1.切换到相应路径 cd /opt/gitlab/bin/2.进入控制台 gitlab-rails console3.根据序号查询用户账号信息并赋值给u u=User.find(2) [注 ...

  7. System.IO.FileNotFoundException: Could not load file or assembly 'System.IO.Compression.FileSystem系统找不到指定的文件

    错误:System.IO.FileNotFoundException: Could not load file or assembly 'System.IO.Compression.FileSyste ...

  8. python查找文件、移动、重命名、压缩

    在文件同级目录下存在sourcefile.targetfile两个文件夹,源文件放在sourcefile import os import shutil Apath = os.path.dirname ...

  9. 查找php-fpm

    [root@VM-4-6-centos /]# find / -name php-fpm/opt/remi/php74/root/usr/sbin/php-fpm/etc/opt/remi/php74 ...

  10. 087_VS load codes for Salesforce

    1. 下载VShttps://code.visualstudio.com/ ,安装后:Extensions 安装Salesforce Extension Pack .Salesforce Packag ...