2010-09-28 66 views
1

我有一個ObservableCollection<Class1>其中Class1包含xy職位作爲屬性。該列表可以是任何大小的。我有一個ViewModel將集合公開爲屬性。在我看來,我想根據集合生成元素列表,然後根據Class1對象的屬性設置它們的x和y位置。動態創建元素並將它們綁定到列表中<T>

我該怎麼做?我知道我可以輕鬆地將集合控件(如列表視圖)輕鬆綁定到集合。但是我需要綁定它並且元素使用x,y屬性將自己放置在畫布上。任何想法讚賞。

回答

1

您可以使用畫布作爲ItemsControl中的你ItemsPanel,然後綁定在ItemContainerStyle到X的Canvas.Top和Canvas.Left屬性和Y屬性:

<ItemsControl ItemsSource="{Binding}"> 
     <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> 
+0

+1這似乎是非常有前途的。不幸的是,直到今天晚些時候我都無法嘗試。我會嘗試一下,然後發佈一些東西。謝謝 – Aishwar 2010-09-28 14:17:19

+0

這對我有效。謝謝 – Aishwar 2010-10-03 21:07:22

0

您也許能夠使用Collection View或類似的東西來實現這一點。

我希望這會有所幫助。

感謝, 的Damián

相關問題