我的应用程序中有一个WPF Treeview。在这里,我正在显示文件夹和文件。由于这些是不同的项目,我使用Composite Collection方法将项目绑定到树视图,如this link中所示。
现在,我需要从WPF Treeview存储SelectedItem。为此,我想在ViewModel中定义一个属性。但是,问题是如果使用FolderItem类型定义属性,那么当我在Treeview中选择文件时,不会触发此属性,反之亦然。
我需要一种存储选定项目的方法,无论它是文件夹还是文件。
非常感谢任何帮助。
此致 kvk938
答案 0 :(得分: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; }