2011-04-15 2 views
3

Utilisation de WPF J'ai une liste de rectangles (qui peuvent avoir un nombre indéfini de rectangles) et un canevas. Je veux positionner ces rectangles sur la toile en utilisant la liaison de données.Comment lier un canevas à une liste de rectangles

J'ai essayé d'utiliser un contrôle d'éléments, et semble empiler chaque élément sur le suivant comme un panneau de pile verticale.

Tous mes rectangles ont les coordonnées 0,0, mais ils sont tous les uns sur les autres sur la toile.

Des alternatives à l'utilisation d'un contrôle d'éléments?

Répondre

5

Vous devez tenir compte de l'emballage des objets lorsqu'ils sont liés:

<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 calme. Merci. – peter

+0

Vous êtes les bienvenus :) –

Questions connexes