列出DataGrid中的目录文件
我搜索了很多主题,但无法找到使用WPF DataGrid
列出目录中文件名内容的答案。 我能够在ListBox
输出内容,但不知道如何将项添加到DataGrid
的Column
。
这适用于ListBox
string path = "C:"; object[] AllFiles = new DirectoryInfo(path).GetFiles().ToArray(); foreach (object o in AllFiles) { listbox.Items.Add(o.ToString()); }
如何使用DataGrid
执行相同的操作? 或者至少将array
strings
放入DataGrid
Column
?
您可以使用一列创建DataGrid
:
并在你的代码中填写如下:
myDataGrid.ItemsSource = new DirectoryInfo(path).GetFiles();
通过将ItemsSource
设置为FileInfo[]
您可以选择创建绑定到FileInfo
类的其他属性的其他列。 此DataGrid
将与分配给ItemsSource
任何IEnumerable
一起使用。 如果它不是一个string
那么将调用ToString()
首先必须在DataGrid中添加Columns(使用VS对设计师来说非常简单),然后你可以使用类似的东西:
for (int i = 0; i < Object.Length; i++) dataGrid.Rows[i].Cells[0].Value = Object[i];
在这种情况下,我使用Cells [0],但您可以指定行上的任何单元格来放置值。
您应该能够将列表框绑定到DataGrid,如:
代替:
object[] AllFiles = new DirectoryInfo(path).GetFiles().ToArray();
使用
List AllFiles = new DirectoryInfo(path).GetFiles().ToList(); MyDataGrid.ItemSource = Allfiles;
这将自动将文件绑定到DataGrid。
string [] fileEntries = Directory.GetFiles(targetDirectory); List fileList = new List (); foreach (string file in fileEntries) { fileList.Add(new FileInfo(file)); } datagrid.ItemsSource = fileList;