¿Cómo hacer que itemtemplate conozca su plantilla que contiene?
Quiero que esta Elipse obtenga sus coordenadas de su correspondiente BallViewModel y las use para determinar su ubicación dentro de un lienzo. La lista de bolas está vinculada aList<BallVM>
en mainviewmodel y, por lo tanto, elegí un control Items que tiene un panel de lienzo.
¿Es correcto este enfoque?
Si intento unirme a X e Y dentro de un estilo de contenedor de elementos, entonces no es específico de una bola determinada.
No importa lo que establezca en las propiedades Canvas.bottom o canvas.left, la elipse siempre está en la parte superior izquierda.
<Grid>
<ItemsControl ItemsSource="{Binding Balls}" Background="red">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas MouseMove="Canvas_MouseMove" Background="Blue"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type VM:BallVM}">
<Ellipse Canvas.Bottom="{Binding Y}" Canvas.Left="{Binding X}" Width="100" Height="100" Fill="Red"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>