将嵌套列表绑定到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
所必需的。