2017-10-11 41 views
0

我的应用程序中有一个WPF Treeview。在这里,我正在显示文件夹和文件。由于这些是不同的项目,我正在使用Composite Collection方法将项目绑定到树形视图,如this link中所建议的。从WPF Treeview存储SelectedItem和复合集合项目

现在,我需要从WPF Treeview存储SelectedItem。为此,我想在ViewModel中定义一个属性。但问题是,如果使用FolderItem类型定义属性,那么当我在Treeview中选择一个文件时,该属性不会被打中,反之亦然。

我需要一种方法来存储selecteditem,而不管它是文件夹还是文件。

任何帮助,高度赞赏。

问候, kvk938

回答

0

您既可以更改的属性,以object类型或类型,无论您FolderItem类,并从File继承(或实现,如果它是一个接口类型):

public interface IItem 
{ 
    string Name { get; } 
} 

public class FolderItem : IItem 
{ 
    public string Name { get; set; } 
    public List<File> Files { get; set; } 
} 

public class File : IItem 
{ 
    public string Name { get; set; } 
} 

视图模型:

public IItem SelectedItem { get; set; }