WPF-TreeView获取文件夹目录、DataGrid获取目录下文件信息
2017-03-11 10:06
507 查看
开发一个WPF桌面应用程序。刚接触WPF编程以及C#语言,这里把一些关键的问题记录下来。
下面是实现将路径的文件夹信息绑定到TreeView及DataGrid上显示。
关键问题是C#数据绑定方式及IEnumerable接口实现对文件类型数据的集合访问,这里数据绑定使用的ItemSource方法,相关详细内容可以搜索关键字查询。
参考效果
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/22/932d7434f2b4928d393d1df04e310b3f.png)
C#代码:
其中from A in B select C 是将B集合中A对象的属性C作为一组集合进行返回。
xaml代码:TreeView控件与DataGrid控件利用ItemSource绑定方式绑定相应数据。
下面是实现将路径的文件夹信息绑定到TreeView及DataGrid上显示。
关键问题是C#数据绑定方式及IEnumerable接口实现对文件类型数据的集合访问,这里数据绑定使用的ItemSource方法,相关详细内容可以搜索关键字查询。
参考效果
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/22/932d7434f2b4928d393d1df04e310b3f.png)
C#代码:
//加载FolderPath目录下的文件夹及文件信息 private void Directory_load() { var directory = new ObservableCollection<DirectoryRecord>(); directory.Add( new DirectoryRecord { Info = new DirectoryInfo(FolderPath) } ); directoryTreeView.ItemsSource = directory; }
//DataGrid事件,设置列标 fileInfo.AutoGeneratingColumn += fileInfoColumn_Load; private void fileInfoColumn_Load(object sender, DataGridAutoGeneratingColumnEventArgs e) { List<string> requiredProperties = new List<string> { "Name", "Length", "FullName", "LastWriteTime" }; if (!requiredProperties.Contains(e.PropertyName)) { e.Cancel = true; } else { e.Column.Header = e.Column.Header.ToString(); } }
//利用IEnumerable接口实现对FileInfo及其属性GetDirectories的调用 class DirectoryRecord { public DirectoryInfo Info { get; set; } public IEnumerable<FileInfo> Files { get { return Info.GetFiles(); } } public IEnumerable<DirectoryRecord> Directories { get { return from di in Info.GetDirectories("*", SearchOption.TopDirectoryOnly) select new DirectoryRecord { Info = di }; } } }
其中from A in B select C 是将B集合中A对象的属性C作为一组集合进行返回。
xaml代码:TreeView控件与DataGrid控件利用ItemSource绑定方式绑定相应数据。
<TreeView x:Name="directoryTreeView"> <TreeView.Resources> <HierarchicalDataTemplate DataType="{x:Type local:DirectoryRecord}" ItemsSource="{Binding Directories}" > <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Info.Name}"/> </StackPanel> </HierarchicalDataTemplate> </TreeView.Resources> </TreeView> <DataGrid x:Name="fileInfo" ItemsSource="{Binding SelectedItem.Files, ElementName=directoryTreeView}">
相关文章推荐
- WPF 获取文件夹路径,目录路径,复制文件,选择下载文件夹/目录
- Qt实现遍历文件夹和文件目录,并过滤和获取文件信息、后缀名、前缀名
- C#遍历文件夹, 获取文件/目录信息
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- 用shell获取目录/文件夹/文件的时间戳
- vbs获取目录下的文件和文件夹集合
- c# winform项目treeview控件绑定本地电脑磁盘信息,读取文件夹信息,显示文件夹内文件内容
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(一)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(一)
- 获取本地文件夹所有文件信息
- windows下获取某个目录下的所有文件信息
- [导入]Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(二)
- 用TreeView显示某一文件夹下的所有目录和文件
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(一)
- 获取目录下的文件数和文件夹数
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(二)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- 获取一个目录下的文件信息
- 使用 WPF 获取你电脑上所有目录的详细信息: