【问题标题】:Storing SelectedItem from WPF Treeview with composite collection items使用复合集合项从 WPF Treeview 存储 SelectedItem
【发布时间】:2017-10-11 07:34:02
【问题描述】:
我的应用程序中有一个 WPF 树视图。在此,我将显示文件夹和文件。由于这些是不同的项目,我使用 Composite Collection 方法将项目绑定到树视图,如 this link 中所建议的那样。
现在,我需要存储 WPF Treeview 中的 SelectedItem。为此,我想在 ViewModel 中定义一个属性。但是,问题是如果定义了 FolderItem 类型的属性,那么当我在 Treeview 中选择一个文件时,这个属性不会被命中,反之亦然。
我需要一种方法来存储所选项目,无论它是文件夹还是文件。
非常感谢任何帮助。
问候,
kvk938
【问题讨论】:
标签:
wpf
data-binding
treeview
【解决方案1】:
您可以将属性的类型更改为 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; }