Как сделать так, чтобы itemtemplate знал о содержащем его шаблоне?

Я хочу, чтобы этот эллипс получил свои координаты из соответствующей модели BallViewModel и использовал их для определения своего местоположения внутри холста. Список шаров связан сList<BallVM>&nbsp;в модели mainview и, таким образом, я выбрал itemsControl, который имеет панель холста.

Правильный ли этот подход?

Если я попытаюсь привязать к X и Y внутри stylecontainer, то это не относится к определенному шару.

Независимо от того, что я установил в свойствах Canvas.bottom или canvas.left, эллипс всегда вверху слева.

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