我正在使用TreeView创建图形。下面是一个截屏。到目前为止,一切都是通过造型完成的。我将TreeView的ItemsPanel设置为水平StackPanel。 (纸夹只是没有图像的项目的占位符。)
注意底层孩子是叶子。他们自己没有孩子。
以下是问题:我希望这些项目进入单独的WrapPanel。问题是一个项目显然可以有孩子的孩子和没有孩子的孩子(分支和叶子)。 ItemsPanel仍然需要是StackPanel,因此您可以获得漂亮的水平布局。但StackPanel中的最后一个控件需要是一个包含所有无子女的WrapPanel。
这是我拼凑在一起的屏幕截图,显示了WrapPanel中的Leaf。
我尝试过的事情
我尝试创建自己的项目面板转换器,但是将整个项目面板转换为包装面板。
我试图向ItemTemplate添加一个单独的树视图并将其绑定到一个单独的集合,但这不是正确的外观。
我还没试过的东西
我所说的WrapPanel几乎就像一个分支。但分支本身是空的,但包含孩子。也许我可以根据属性更改节点的样式。然后它不是显示图片或其他任何东西,而是数据模板将是WrapPanel
答案 0 :(得分:0)
我明白了。
我浏览了我的分层数据集并进行了一些更改。对于每个分支,我删除了它的叶子并将它们添加到一个新节点。然后我将节点添加回分支。它创造了一个占位符。
该节点包含一个名为“IsLeafCollection”的属性。它只是验证每个孩子都没有孩子。
我有一个绑定到IsLeafCollection的数据触发器。如果是,则将项目面板更改为包装面板。
以下是最终结果的截图。