以编程方式添加 TreeViewItem

Programmatically Adding a TreeViewItem

我正在尝试以编程方式在 UWP 中填充树视图。但是,我在 TreeViewItemTreeViewNode 之间感到困惑。

我可以像这样将 TreeViewNode 添加到另一个 TreeViewNode

Windows.UI.Xaml.Controls.TreeViewNode node = new Windows.UI.Xaml.Controls.TreeViewNode();
node.Content = myInfo.Name;

parentNode.Children.Add(node);

但是,我的理解是,当我深入到最底层时,我需要一个TreeViewItem;例如:

root
- Level 1 - Node
  - Level 2 - Node
  - Level 2 - Node
    - TreeViewItem?
- Level 1
  - TreeViewItem?

但是,我不能这样做:

Windows.UI.Xaml.Controls.TreeViewItem node = new Windows.UI.Xaml.Controls.TreeViewItem();
node.Content = data;
node.Tag = tagInfo;
parentNode.Children.Add(node);

我想我误解了 TreeViewItem 的用途。请有人能指出我正确的方向吗?

是的...如您所见here TreeViewItemTreeView 项目模板[=28= 的根] 并且 TreeViewNode 是 "actual" 项。

过于简单

  • 如果您想将项目添加到您的 TreeView,那么您必须使用 TreeViewNode class

  • 如果你想要 "redesign" 你的 TreeViewNodes,假设你想要一些六边形列表而不是普通的层次列表,那么你必须实现 TreeViewItem 在你的 Style/Template

就像Zer0说的,你不一定要用TreeViewItem。事实上,构成 TreeView 的基本组件是 TreeViewNodeTreeViewItem可以看做是同级别同样式的TreeViewNode容器。它有ItemsSourceItemTemplate属性,可以根据收集的数据批量创建相同的"TreeViewNode"

TreeView/TreeViewItem/TreeViewNode之间的关系就像building/wall[=之间的关系30=]/。墙是由许多相同的砖砌成的,本身可以看作是一块大砖。

此致。