Silverlight中的数据绑定画布控件

时间:2010-02-26 22:18:44

标签: silverlight data-binding canvas

是否可以将画布上的控件绑定到对象列表?我在想这样的事情:

<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;

基本上,会有一个转换器将每个Tuple对象转换为画布上给定Point坐标的控件。我知道Canvas控件上没有“ItemsSource”或“ItemsTemplate”属性,但是这可能以其他方式实现吗?

1 个答案:

答案 0 :(得分:4)

添加列表框并将其itemspanel设置为画布。

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