Setting Canvas properties in an ItemsControl DataTemplate
The attached properties only work on direct children of the Canvas
. ItemsControl
will place ContentPresenter
controls as its direct children, so you might want to add a style for that as well:
<ItemsControl ItemsSource="{Binding Path=Nodes}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <Canvas /> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemContainerStyle> <Style TargetType="ContentPresenter"> <Setter Property="Canvas.Left" Value="{Binding Path=XPos}" /> <Setter Property="Canvas.Top" Value="{Binding Path=YPos}" /> </Style> </ItemsControl.ItemContainerStyle></ItemsControl>