2010-02-26 3 views
1

Возможно ли связать элементы управления на холсте со списком объектов? Я имею в виду что-то вроде этого:Управление привязкой к содержимому в 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> 
Смежные вопросы