#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 хранит о своих папках, чтобы пользователи могли сортировать каталоги по дате.
Подводя итог моему вопросу:
- Может
DataGrid
ли это принести пользуDirectory.GetDirectories()
? - Могу ли я обрезать
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. Работает как перчатка, огромное спасибо.