2011-04-15 32 views
3

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

我已经尝试过使用项目控件,并且似乎将每个项目堆叠在下一个项目之上,就像一个垂直堆栈面板。

我所有的矩形都有坐标0,0,但它们全部在画布下方。

任何使用项目控件的替代方法?

回答

5

您需要绑定时,占项目的包装:

<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> 
+0

OK平静下来。谢谢。 – peter 2011-04-15 03:40:07

+0

欢迎您:) – 2011-04-15 03:41:06