博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 4 目录树型显示
阅读量:5872 次
发布时间:2019-06-19

本文共 2831 字,大约阅读时间需要 9 分钟。

 本篇将通过WPF4 制作简单的目录树型结构显示实例,完成本篇内容我们将作出下图所示的应用程序。

TreeView

     从图中我们可以看到程序主要分为两部分:左边显示本地驱动器的目录树型列表,右边显示被选中目录中的文件信息。首先,创建一个DirectoryRecord 类,通过两个泛型接口Files、Directories 分别获取文件信息和目录信息。其中使用Linq 获取目录信息时,我们只需要使用SearchOption.TopDirectoryOnly 读取当前目录文件夹信息即可,而不需使用SearchOption.AllDirectories 获取包含子文件在内的所有文件夹信息。

class DirectoryRecord{    public DirectoryInfo Info { get; set; }    public IEnumerable
Files { get { return Info.GetFiles(); } } public IEnumerable
Directories { get { return from di in Info.GetDirectories("*", SearchOption.TopDirectoryOnly) select new DirectoryRecord { Info = di }; } }}

     在<Gird>中我们加入<TreeView> 和<DataGrid> 分别显示目录树和文件信息。在TreeView 中通过HierarchicalDataTemplate 模板显示出目录树型层级结构,DataGrid 则通过绑定TreeView 中选择的目录而显示相应文件信息。

     最后,通过Directory_Load 方法将本地磁盘目录加载到TreeView 中,并通过定义DataGridAutoGeneratingColumnEventArgs 事件fileInfoColumn_Load 在DataGrid 中过滤出想要参考的文件信息(Name、Length、FullName、IsReadOnly、LastWriteTime)。

using System.Collections.ObjectModel;using System.IO;using System.Windows;using System.Windows.Controls;using System.Collections.Generic;namespace WpfDirectoryTreeView{    ///     /// Interaction logic for MainWindow.xaml    ///     public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();            Directory_Load();            fileInfo.AutoGeneratingColumn += fileInfoColumn_Load;        }        private void Directory_Load()        {            var directory = new ObservableCollection
(); foreach (var drive in DriveInfo.GetDrives()) { directory.Add( new DirectoryRecord { Info = new DirectoryInfo(drive.RootDirectory.FullName) } ); } directoryTreeView.ItemsSource = directory; } private void fileInfoColumn_Load(object sender, DataGridAutoGeneratingColumnEventArgs e) { List
requiredProperties = new List
{ "Name", "Length", "FullName", "IsReadOnly", "LastWriteTime" }; if (!requiredProperties.Contains(e.PropertyName)) { e.Cancel = true; } else { e.Column.Header = e.Column.Header.ToString(); } } }}

参考资料

1. SearchOption Enumeration 

2. Directory.GetDirectories Method 

3. HierarchicalDataTemplate Class 

源代码下载

本文转自Gnie博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2010/06/04/wpf4-directory-treeview.html,如需转载请自行联系原作者
你可能感兴趣的文章
.Net 通过MySQLDriverCS操作MySQL
查看>>
JS Cookie
查看>>
ubuntu Unable to locate package sysv-rc-conf
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
MacBook如何用Parallels Desktop安装windows7/8
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
七天学会ASP.NET MVC (四)——用户授权认证问题
查看>>
upgrade to iOS7,how to remove stroyboard?
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
zabbix监控部署
查看>>
关于Tomcat下项目中文名在Windows和Linux下编码混乱问题解决
查看>>
struts中的xwork源码下载地址
查看>>
Android硬件抽象层(HAL)深入剖析(二)
查看>>
CDays–4 习题一至四及相关内容解析。
查看>>
L3.十一.匿名函数和map方法
查看>>
前端自动化构建工具webpack (一)之webpack安装 和 设置webpack.confi.js
查看>>