列出DataGrid中的目录文件

我搜索了很多主题,但无法找到使用WPF DataGrid列出目录中文件名内容的答案。 我能够在ListBox输出内容,但不知道如何将项添加到DataGridColumn

这适用于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;