C# 如何仅使用ViewModel代码在WPF中移动ItemsControl的选定项
我目前正在从事一个项目,其中我有一个ItemsControl绑定到一个玩家列表,以显示记分牌。当列表更新,球员核心改变时,我希望球员滑到新位置 这已经可以在每个元素上使用TranslateTransform属性,但仅以15-20 FPS(每帧约50-70ms)的速度工作,因此您可以看到它不是流体。这是因为要重新绘制ItemsControl,我必须调用NotifyOfPropertyChange方法,以便它重新绘制自己,但它重新绘制所有元素 因为它只是一个显示板,我不能处理用户交互,但必须基于纯代码 所以我的问题是,有没有一种方法可以只重新绘制ItemsControl的特定元素,或者有没有另一种方法可以显示一个列表,让我可以逐个访问成员?C# 如何仅使用ViewModel代码在WPF中移动ItemsControl的选定项,c#,wpf,xaml,C#,Wpf,Xaml,我目前正在从事一个项目,其中我有一个ItemsControl绑定到一个玩家列表,以显示记分牌。当列表更新,球员核心改变时,我希望球员滑到新位置 这已经可以在每个元素上使用TranslateTransform属性,但仅以15-20 FPS(每帧约50-70ms)的速度工作,因此您可以看到它不是流体。这是因为要重新绘制ItemsControl,我必须调用NotifyOfPropertyChange方法,以便它重新绘制自己,但它重新绘制所有元素 因为它只是一个显示板,我不能处理用户交互,但必须基于纯代
<Grid Width="500" Height="120">
<Grid.RenderTransform>
<TranslateTransform X="{Binding TransformHorizontal}" Y="{Binding TransformVertical}" />
</Grid.RenderTransform>
</Grid>
这是我为绑定到元素属性TransformHorizontal和TransformVertical的每个元素使用的周围网格,我可以为每个元素分别设置TransformHorizontal和TransformVertical属性。如果TransformHorizontal和TransformVertical属性引发PropertyChanged事件,TranslateTransform将自动更新项目位置,无需“重新绘制”整个ItemsControl。也就是说,在绝对位置绘制项目的常用方法是使用画布作为项目面板,如图所示。