1

我正在用 TreeView 创建一个图表。下面是一个屏幕截图。到目前为止,一切都通过造型完成。我将 TreeView 的 ItemsPanel 设置为水平 StackPanel。 (回形针只是没有图像的物品的占位符。)

树视图图的屏幕截图

注意底层的孩子是叶子。他们自己没有孩子。

这是问题:我希望这些项目进入单独的 WrapPanel。问题是一个项目显然可以有孩子有孩子和没有孩子的孩子(分支和树叶)。ItemsPanel 仍然需要是 StackPanel,以便您获得一个不错的水平布局。但是 StackPanel 中的最后一个控件需要是带有所有无子子级的 WrapPanel。

这是我拼凑在一起的屏幕截图,以显示 WrapPanel 中的叶子。

带有环绕面板的树视图的屏幕截图

我尝试过的事情

我尝试创建自己的项目面板转换器,但这会将整个项目面板转换为包装面板。

我尝试将单独的树视图添加到 ItemTemplate 并将其绑定到单独的集合,但这不是正确的外观。

我没试过的东西

我所说的 WrapPanel 几乎就像一个分支。但是分支本身是空的,但包含子项。也许我可以根据属性更改节点的样式。然后,它的数据模板将是 WrapPanel,而不是显示图片或其他内容

4

1 回答 1

0

我想到了。

  1. 我遍历了我的分层数据集并进行了一些更改。对于每个分支,我删除了它的叶子并将它们添加到一个新节点。然后我将节点添加回分支。它有点创建一个占位符。

  2. 该节点包含一个名为“IsLeafCollection”的属性。它只是验证它的每个孩子都没有任何孩子。

  3. 我有一个绑定到 IsLeafCollection 的数据触发器。如果为真,那么它将项目面板更改为换行面板。

下面是最终结果的屏幕截图。

树视图的屏幕截图

于 2013-02-27T20:25:00.993 回答