2010-02-26 52 views
1

是否可以將畫布上的控件綁定到對象列表?我想是這樣的:Databound Silverlight中的畫布控件

<UserControl.Resources> 
    <DataTemplate x:Key="MyItemTemplate"> 
     <ContentControl Content="{Binding Converter={StaticResource MyControlConverter}}"></ContentControl> 
    </DataTemplate> 
</UserControl.Resources> 
<Canvas ItemsSource="{Binding MyItems}" ItemTemplate="{StaticResource MyItemTemplate}"> 
</Canvas> 

哪裏MyItems是這樣的:

public List<Tuple<ControlType, Point>> MyItems; 

基本上,將是轉換的每個元組對象在指定點在畫布上的座標控制的轉換器。我知道Canvas控件上沒有「ItemsSource」或「ItemsTemplate」屬性,但是這可能以其他方式嗎?

回答

4

您添加一個列表框並將其項目面板設置爲畫布。

<ListBox ItemsSource="{Binding MyItems}" ItemTemplate="{StaticResource MyItemTemplate}"> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
     <Canvas/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
</ListBox>