Вы можете иметь простой ItemsControl.
ItemsControl - это просто контейнер предметов.
ItemsPanel должен быть установлен на ваш холст. И шаблон данных каждого элемента должен быть элементом управления «FieldItem».
В вашей viewmodel выставьте свойство, которое называется Предметы, которое будет набором данных предметов.
Нечто похожее на это:
<ItemsControl ItemsSource="{Binding Items}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<FieldItem />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
Silverlight не имеет ItemContainerStyle, но вы можете установить его в коде:
public class MyItemsControl : ItemsControl
{
protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
FrameworkElement contentitem = element as FrameworkElement;
Binding leftBinding = new Binding("Position.X");
Binding topBinding = new Binding("Position.Y");
contentitem.SetBinding(Canvas.LeftProperty, leftBinding);
contentitem.SetBinding(Canvas.TopProperty, topBinding);
base.PrepareContainerForItemOverride(element, item);
}
}
взято отсюда: http://forums.silverlight.net/forums/p/29753/96429.aspx