Я знаю, как развернуть все узлы в виде дерева:
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="TreeViewItem.IsExpanded" Value="True"/>
</Style>
</TreeView.ItemContainerStyle>
Единственная проблема в том, что для расширения всех узлов требуется около минуты ... это, вероятно, потому, что существует так много элементов. Как я мог ускорить этот процесс?
Edit:
Итак, у меня есть список: List<ScanItems> MyFilesList
ScanItem
- это класс, который имеет такие свойства, как: FullName, Name, Size, DateCreated, ComparePath и другие конкретные свойства, которые мне нужны, поэтому я не использовал класс FileInfo.
ScanFile
- это класс, который наследуется от ScanItems, поэтому он похож на него с добавлением других пользовательских свойств.
ScanDir
- это еще один класс, который наследуется также от ScanItem и имеет следующее свойство:
public List<ScanItem> items{get;set;}
причина, по которой я включил это свойство, состоит в том, что у меня может быть другой список с элементом.
Посмотрите на этот вопрос относительно того, как заполнить древовидную структуру из списка файлов.
так что теперь я надеюсь, что я правильно объясню, как привязать этот список к древовидной структуре.
Теперь позвольте мне объяснить, как я добавил файлы в MyFilesList. Я создал метод рекурсии для поиска файлов в каталоге. Если в текущем каталоге содержится файл, добавьте элемент ScanFile. Если он содержит папку, добавьте объект ScanDir и снова вызовите тот же метод, передав список ScanDir. Таким образом, этот процесс занимает около 8 секунд для сканирования моего внешнего жесткого диска. после того, как этот метод будет выполнен, мой список может содержать только 4 элемента, но один из этих элементов будет содержать список из 20 элементов и т. д. Точно так же, как папка может иметь 5 элементов, и если один из этих 5 элементов окажется папкой в этой папке может иметь дополнительные предметы.
Поэтому, когда я выполняю TreeView.DataContext = MyFilesList, древовидная структура заполняется менее чем за секунду. Но когда я включаю:
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="TreeViewItem.IsExpanded" Value="True"/>
</Style>
</TreeView.ItemContainerStyle>
этот стиль в древовидном представлении древовидная требует много времени для загрузки.