【发布时间】:2014-02-24 02:05:31
【问题描述】:
我有一个带有TreeView 的 WPF 应用程序。我将文件和/或文件夹拖放到此TreeView 上。如果拖动的项目是一个文件夹,我已经设置了检测,我搜索这个目录的顶层。
我卡在TreeView 上显示这些内部文件。我希望这些内部文件显示为文件夹项的子项。
这是在 TreeView 中为项目建模的类:
public class FileList
{
public enum FileType { File, Folder };
public FileType Type { get; set; }
public string Name { get; set; }
private ObservableCollection<FileList> innerFiles;
public ObservableCollection<FileList> InnerFiles
{
get
{
return innerFiles;
}
set
{
innerFiles = value;
}
}
public FileList(string file)
{
Name = file;
Type = FolderOrFile(file);
}
}
这是TreeView.ItemTemplate中的xaml代码
<HierarchicalDataTemplate>
<TextBlock Text="{Binding Name}">
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem Name="mnuExpand" Header="Expand" Click="mnuExpand_Click" />
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding InnerFiles}" />
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
我将FileList 对象中的ObservableCollection 分配给TreeViewItem 的FileList 中的内部集合,然后刷新网格,但是这些子项没有出现。
我尝试了以下操作:TreeView not showing my Children
但我希望有可能打开/搜索尽可能多的级别。
任何帮助将不胜感激。
【问题讨论】: