Tag: datatemplate itemsource

在WPF中我需要有一组绘图对象的集合

我有一个WPF项目,它在一个面板中绘制了几个东西。 对于下一个版本,除了现有的东西之外,我还需要添加另一种类型的东西。 目前我有一个包含ItemsControl的网格,其中包含ItemsPanel和ItemsSource。 现有的ItemsSource看起来像这样: 大多数集合都是线条或多边形。 我定义了DataTemplates,以将绘图对象的属性绑定到后备对象。 BarrierLine对象的示例如下所示: 这一切都运作良好。 现在我需要添加一系列要绘制的东西以及现有的东西。 这个新东西有一系列线条以及平移和旋转值。 不幸的是,我需要绘制这些新东西的集合。 每个实例都有自己的转换和旋转以及行集合。 实际上,我现在拥有一系列线条的集合。 有没有办法嵌套CollectionContainers? 我应该尝试将一个集合添加到DataTemplate吗? 我不知道应该去哪个方向。 编辑: 好吧,我创建了一个概念validation程序,希望能满足彼得的要求。 我将在下面提供代码。 它由五个文件组成:LineArt.cs ObstacleArt.cs MainWindowResource.cs MainWindow.xaml.cs MainWindow.xaml LineArt对象表示绘制单行所需的数据。 ObstacleArt对象表示线的集合以及这些线的平移和旋转。 我希望能够绘制一系列线条(没有任何转移或旋转)以及一系列障碍物,每个障碍物都有一系列线条。 我试图使用Peter的建议将CompositeCollection放在CollectionContainer的Collection属性中,该CollectionContainer位于CompositeCollection中。 您可以在靠近底部的xaml文件中看到它。 在Collection的Path属性中,当我放置“Obstacles [0] .Lines”时,它将绘制第一个障碍的线条,但是当我取出索引并说“Obstacles.Lines”时它不会绘制任何东西。 我需要的是能够绘制所有障碍物的所有线条。 除此之外,我还需要为每组线设置平移和旋转。 以下是文件,您应该能够编译并运行它。 LineArt.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media; namespace POC_WPF_nestedDrawingObjects { public class […]