wpf - 在WPF/Silverlight中使用HierarchicalDataTemplate的类似于文件系统的TreeView

标签 wpf silverlight mvvm

我的ViewModel看起来像这样:

public class DirectoryViewModel : ViewModelBase
    {

        public ObservableCollection<DirectoryViewModel> SubDirectoryList { get; set; }

        public ObservableCollection<FileViewModel> FileList { get; set; }

        public string Name { get; set; } 
    }

在每个目录下,可能都有它自己的文件以及子目录。如何使它的子目录和文件都显示在TreeView的同一级别上?

最佳答案

像这样更改类(class):

public class DirectoryViewModel : ViewModelBase
{

    public ObservableCollection<ViewModelBase> ItemsInDirectory { get; set; }

    public string Name { get; set; } 
}
ViewModelBase必须是DirectoryViewModelFileViewModel的基类。将所有文件和目录放入ItemsInDirectory集合中。

然后为类HierarchicalDataTemplates创建2个DirectoryViewModel,为FileViewModel创建一个

关于wpf - 在WPF/Silverlight中使用HierarchicalDataTemplate的类似于文件系统的TreeView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8242020/

相关文章:

c# - 检查事件是否已经存在

silverlight - 'Self' 构造在 Silverlight/MVVM 中有用吗?

wpf - 我应该在模型层引用 MVVM 框架吗?

wpf - 从 ViewPort 中删除 ScreenSpaceLines3D 对象?

c# - 多个源绑定(bind)到相同的目标依赖属性

c# - WPF 在用户控件上剪切、复制、粘贴功能

c# - 你如何在 WPF 中组织你的模型/ View / View 模型

silverlight - MVVMLight、Silverlight、 Entity Framework

flash - 支持 crossdomain.xml 以允许 Flash 和 Silverlight 访问的站点

unit-testing - 如何使用依赖注入(inject)在 Master-Detail View 中创建 ViewModel