【发布时间】:2011-10-12 15:21:59
【问题描述】:
我希望这个 Ellipse 从其对应的 BallViewModel 中获取其坐标,并使用它们来确定其在画布内的位置。
球列表绑定到主视图模型中的List<BallVM>,因此我选择了具有画布面板的 itemsControl。
这种方法正确吗?
如果我尝试在 itemcontainerstyle 中绑定 X 和 Y,那么它并不是特定于某个球。
无论我在 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>
【问题讨论】: