I have a class called CFolder and a class called CFiles. Inside CFolder I have an ObservableCollection<CFolder> SubFolders, and inside the same class (CFolder) I have an ObservableCollection<CFile> FolderFiles. In the MainWindow class, I created a CFolder root_folder = new CFolder {FolderName = "Root Folder"}. I append that CFolder object to a List<CFolder> CFoldersList object. I then set treeview.itemsSource = CFoldersList.
C# Code -
CFolder root_folder = new CFolder() { folderName = "Root" };
CFile some_file = new CFile() { fileName = "Some File" };
CFolder sub_folder = new CFolder() { folderName = "Sub Folder" };
CFolder sub_sub_folder = new CFolder() { folderName = "Sub Sub Folder" };
root_folder.SubFolders.Add(sub_folder);
sub_folder.SubFolders.Add(sub_sub_folder);
root_folder.FolderFiles.Add(some_file);
CFoldersList.Add(root_folder);
treeview.ItemsSource = CFoldersList;
Inside the XAML I have -
<TreeView x:Name="treeview" Margin="0,101,6,0" Padding="1,1,1,1" UseLayoutRounding="False" AllowDrop="True">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:CFolder}" ItemsSource="{Binding SubFolders}">
<TextBlock Text="{Binding folderName}"></TextBlock>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:CFile}">
<TextBlock Text="{Binding Path=fileName}"></TextBlock>
</DataTemplate>
</TreeView.Resources>
</TreeView>
It shows the subfolders but it doesn't show me the files. I would like to list SubFolders and Files inside the folder