具有层次结构数据模板的WPF ListView

本文关键字:WPF ListView 层次结构 数据 | 更新日期: 2023-09-27 17:58:21

我想用ListView控件创建类似TreeView的东西。有两个类具有相同的基类,如下所示:

public abstract class DataObjectBase
{
    public string Name { get; set; }
    public override string ToString()
    {
        return this.Name;
    }
}
public class SimpleDataObject : DataObjectBase
{
    public object Value { get; set; }
}
public class ComplexDataObject : DataObjectBase
{
    private ObservableCollection<DataObjectBase> _DataObjects = new ObservableCollection<DataObjectBase>();
    public ObservableCollection<DataObjectBase> DataObjects
    {
        get { return _DataObjects; }
        set { _DataObjects = value; }
    }
}

如何使用HirarchicalDataTemplate将此结构绑定到ListView?复杂的DataObject在_DataObjects ObservableCollection中可以有n个子元素。

具有层次结构数据模板的WPF ListView

答案是。。。你没有。如果您查看文档http://msdn.microsoft.com/en-us/library/system.windows.hierarchicaldatatemplate(v=vs.110).aspx层次结构数据模板只能与HeaderedItemsControlls一起使用。ListView继承自简单ItemsControl。

您可以使用TreeView或使用经典的DataTemplates来实现它。