Data binding Silverlight 4画布。每件物品左侧绑定,不带画布

Data binding Silverlight 4画布。每件物品左侧绑定,不带画布,data-binding,silverlight-4.0,itemscontrol,Data Binding,Silverlight 4.0,Itemscontrol,我在这段代码中遇到了一些性能问题,如果我将鼠标移到数据模板内的画布上,鼠标在画布区域上的移动会滞后,但如果我将其取出,鼠标就不会滞后(但很明显,画布。左侧绑定不起作用,因此省略号位于错误的位置!)有没有一种方法可以在每个项目都不需要自己的画布的情况下定位这些项目 <Canvas> <ItemsControl ItemsSource="{Binding Path=SpatialData.TrainEvents.ArrDepEllipseOfLines}"

我在这段代码中遇到了一些性能问题,如果我将鼠标移到数据模板内的画布上,鼠标在画布区域上的移动会滞后,但如果我将其取出,鼠标就不会滞后(但很明显,画布。左侧绑定不起作用,因此省略号位于错误的位置!)有没有一种方法可以在每个项目都不需要自己的画布的情况下定位这些项目

    <Canvas>    
    <ItemsControl ItemsSource="{Binding Path=SpatialData.TrainEvents.ArrDepEllipseOfLines}" Name="ctrlChartTrainEventsArrDep" >
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <Canvas>
        <Ellipse Width="{Binding EventShape.Width}" Height="{Binding EventShape.Height}" Stroke="{Binding Path=Stroke}" StrokeThickness="{Binding StrokeThickness}" Fill="{Binding Path=Fill}" Canvas.Left="{Binding CanvasPlacement.X}" Canvas.Top="{Binding CanvasPlacement.Y}" />
      </Canvas>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
 </ItemsControl>
</Canvas>

非常感谢,
贝基

是的,你可以移除椭圆中的画布。我想您会发现CanvasPlacement.X的值没有正确地按椭圆递增,您看到的效果是ItemsControl中的每个元素实际上都放置在StackPanel中(默认行为,可以通过ItemsPanel属性更改)这就是为你准备的——很可能是水平线

在这里放置一些代码/xaml,让其他人可以轻松地重新创建您的问题。啊,这很有趣-事实上,它在父画布的左侧垂直排列椭圆。在ItemsPanel属性中放置画布并不意味着我可以删除itemtemplate画布,但是,由于忽略了.Left绑定,因此我遇到了相同的问题:)