【发布时间】:2010-09-24 18:13:20
【问题描述】:
我试图在 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;
}
}
我希望能够将 alFiles 中的所有 FileInfo 类显示为组节点的子节点。这是我的 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>
提前谢谢....
【问题讨论】: