使用复合集合项从WPF Treeview存储SelectedItem

时间:2017-10-11 07:34:02

标签: wpf data-binding treeview

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

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

我需要一种存储选定项目的方法,无论它是文件夹还是文件。

非常感谢任何帮助。

此致 kvk938

1 个答案:

答案 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; }