如何将画布绑定到矩形列表

本文关键字:列表 绑定 布绑定 | 更新日期: 2023-09-27 17:50:26

使用WPF,我有一个矩形列表(其中可以有一个未定义数量的矩形),和一个画布。我想使用数据绑定在画布上定位这些矩形。

我尝试过使用项目控制,并且似乎将每个项目堆叠在下一个项目的顶部,就像一个垂直堆叠面板。

我所有的矩形的坐标都是0,0,但它们在画布上都是相互重叠的。

有什么可以替代items控件的吗?

如何将画布绑定到矩形列表

在绑定时需要考虑项目的包装:

<ItemsControl ItemsSource="{Binding Data}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemContainerStyle>
        <Style>
            <Setter Property="Canvas.Left" Value="{Binding X}"/>
            <Setter Property="Canvas.Top" Value="{Binding Y}"/>
        </Style>
    </ItemsControl.ItemContainerStyle>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <!-- Item Template -->
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>