在wpf中将树视图显示为网格行,其中分支可能具有不同的深度

本文关键字:分支 深度 wpf 视图 显示 网格 | 更新日期: 2023-09-27 18:02:17

我试图在每一行创建一个具有多个列数据的TreeView(例如我的示例中的2列,属性和值),类似于此线程。Heena提出的解决方案的不同之处在于,树可能会更复杂一些。每个分支的深度可能不同(因此在某些情况下,节点可能比其他节点有更多的子节点)。

我将使用下面的类来实现代码,这样可以嵌套元素:
public class TreeItem
{
  private TreeItem()
  {
  }
  public TreeItem( string property, string value )
  {
    if( property == null )
    {
      property = string.Empty;
    }
    if( value == null )
    {
      value = string.Empty;
    }
    _property = property;
    _value = value;
  }
  public TreeItem( params TreeItem[] items )
  {
    AddItems( items );
  }
  public TreeItem( string property, string value, params TreeItem[] items ) : this( property, value )
  {
    AddItems( items );
  }
  public string Property
  {
    get
    {
      return _property;
    }
  }
  public string Value
  {
    get
    {
      return _value;
    }
  }
  public IEnumerable<TreeItem> Items
  {
    get
    {
      return (IEnumerable<TreeItem>)_items;
    }
  }
  private void AddItems( params TreeItem[] items )
  {
    foreach( TreeItem item in items )
    {
      if( item != null )
      {
        _items.Add( item );
      }
    }
  }
  private readonly string _property;
  private readonly string _value;
  private readonly List<TreeItem> _items = new List<TreeItem>();
}

有可能用WPF实现这一点吗?如果是,怎么做?

在wpf中将树视图显示为网格行,其中分支可能具有不同的深度

http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-by-step.aspx

WPF TreeView HierarchicalDataTemplate -绑定到具有多个子集合的对象