使用itemscontrol从对象列表中添加形状

时间:2014-11-07 09:16:02

标签: c# wpf xaml

我是WPF的新手并试图将形状数据绑定到画布上。 我在viewmodel中有一个observableCollection“cake”对象。我已经设法进行数据绑定工作并用我的cakeID编写一个列表,但是想将这些蛋糕添加到画布作为省略号,并且从搜索中我发现itemsControl是唯一的解决方案。因为我有一个可观察的蛋糕集合,而不是一个可观察的对象集合,我正在努力做到这一点。我应该在cake对象中创建椭圆对象,还是只能获取数据并在XAML中创建它?

我的XAML代码看起来像这样,但我对我应该绑定的地方感到困惑,从蛋糕列表中的蛋糕对象中检索椭圆,以及XPos和YPos

<DockPanel>
    <Viewbox Margin="30,30,30,42">
        <ItemsControl ItemsSource="{Binding Path=cakes}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <Canvas Name="canvasWorld" Background="Blue" Width="3996.0" Height="2009.1" IsItemsHost="True">
                    </Canvas>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Path Data="{Binding ellipse}"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
            <ItemsControl.ItemContainerStyle>
                <Style>
                    <Setter Property="Canvas.Top" Value="{Binding Path=XPos}" />
                    <Setter Property="Canvas.Left" Value="{Binding Path=YPos}" />
                </Style>
            </ItemsControl.ItemContainerStyle>
        </ItemsControl>
    </Viewbox>
</DockPanel>

0 个答案:

没有答案