Заполните сетку данных в WPF C# каталогом.Получить каталоги(Путь)

#c# #wpf #directory #datagrid

Вопрос:

Я использую такой код:

 var s = Directory.GetDirectories(NAS PATH)
 

Затем я DataGrid наполняю его вот так:

 RandomDataGridName.ItemsSource = s
 

Проблема, с которой я сталкиваюсь, заключается в том, что при использовании Listbox он работает нормально, но как только я его использую DataGrid , я заполняю только длину DataGrid .

Поэтому я сделал следующее:

 <DataGrid.Columns>
    <DataGridTextColumn IsReadOnly="True" Binding="{Binding }" Header="Name"/>
</DataGrid.Columns>
 

Приведенный выше код работает, но я получаю только столбец имя, содержащий весь путь к папкам в NAS.

Я хотел бы получить стандартную дату и остальную информацию, которую Windows хранит о своих папках, чтобы пользователи могли сортировать каталоги по дате.

Подводя итог моему вопросу:

  1. Может DataGrid ли это принести пользу Directory.GetDirectories() ?
  2. Могу ли я обрезать DataGrid отображаемый путь, чтобы пользователь не видел полный путь к каталогам, а только фамилии папок?

Ответ №1:

вы можете получить дополнительную информацию, используя объект DirectoryInfo:

 var folder = new DirectoryInfo(NAS_PATH);
DirectoryInfo[] subdir = folder.GetDirectories();
RandomDataGridName.ItemsSource = subdir;
 

обратите DirectoryInfo[] внимание на результат (вместо string[] из каталога.GetDirectories, который просто указывает пути)

затем настройте сетку данных для отображения соответствующих свойств

 <DataGrid.Columns>
    <DataGridTextColumn IsReadOnly="True" Binding="{Binding Name}" Header="Name"/>
    <DataGridTextColumn IsReadOnly="True" Binding="{Binding CreationTime}" Header="CreationTime"/>
</DataGrid.Columns>
 

Комментарии:

1. Работает как перчатка, огромное спасибо.