Я пытаюсь отобразить группу (расширение файла и значок) (родительский), а затем все файлы, найденные в этой группе (дочерний), в WPF Treeview. Я могу заставить группы отображаться в древовидной структуре, каждая из которых имеет значок и текст, однако я не понимаю, как отображать файлы как дочерние группы. Вот класс GroupInfo, проблема в том, что он содержит FileInfo, другой класс, и во всех руководствах, которые я читал на WPF Treeview, для создания элементов дерева используется только один класс данных:
public class GroupInfo
{
public GroupInfo()
{
alFiles = new ObservableCollection<FileInfo>();
}
public string strExtension { get; set; }
public ImageSource icon {get; set;}
public string strDescription { get; set; }
public string TypeDescription
{
get
{
string s = strExtension;
s.Replace('.',' ');
s += " - " + strDescription;
return s;
}
set
{
}
}
public ObservableCollection<FileInfo> alFiles;
void LoadIcon()
{
//icon = BitmapFrame.Create();
}
string GetDescription()
{
string strD = "";
return strD;
}
}
Я хочу показать все классы FileInfo в alFiles как дочерние узлы группы. Вот мой XAML:
<TreeView Margin="12,12,12,375" Name="trGroups" ItemsSource="{Binding Groups}" >
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:GroupInfo}"
ItemsSource="{Binding Groups}">
<StackPanel Orientation="Horizontal" Margin="2">
<Image Source="{Binding icon}"
Width="16"
Height="16"
SnapsToDevicePixels="True"/>
<TextBlock Text="{Binding TypeDescription}" Margin="5,0"/>
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:FileInfo}"
ItemsSource="{Binding Groups.Files}">
<StackPanel Orientation="Horizontal" Margin="2">
<Image Source="{Binding icon}"
Width="16"
Height="16"
SnapsToDevicePixels="True"/>
<TextBlock Text="{Binding TypeDescription}" Margin="5,0"/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
Заранее спасибо ....