将嵌套列表绑定到WPFcanvas面板

我想知道是否有可能以某种方式将列表列表绑定到cavas面板。 例如,具有对象“层”,其本身是“矩形”对象的列表。 是否可以将图层列表绑定到canvas? 到目前为止,我只能通过将一个扁平的嵌套列表(使用SelectMany函数)绑定到一个itemcontrol来实现它,但这不够好,我想保持“图层”分开,并使矩形的Zindex根据不同而不同它所在的层,允许轻松地重新排序图层。

我也尝试过嵌套的itemcontrols,但正如预期的那样它只显示第一层。 目的是为canvas上每个图层中的每个对象绘制一个矩形,允许图层操作,在每个图层中插入新对象等等……

提前致谢! 🙂

如何使用另一个Canvas作为ItemsPanel制作主要ItemsControl的ItemTemplate另一个ItemsControl? (我没有看到它应该只显示第一层的原因)

实际上,主要的ItemsControl不需要是Canvas,Grid也可以这样做(至少除非你的集合有自己的坐标或Z-Order,如果使用网格,层次顺序与它们的外观相同)集合)。

一个例子(有点冗长,但对此无能为力):

                              

像HB说的那样,我也看不出它为什么不起作用的原因。 在另一个ItemsContainer中使用ItemsControl非常合适。

      

但它认为将子ItemsControl放在DataTemplate为您的Items更DataTemplate ,而无需修改ItemsContainerStyle 。 如果您的控件需要知道有关模型属性的信息,那么我认为它的设计很糟糕,这是绑定到Rectangles所必需的。