C# WP7列表框如何允许用户订购项目
场景:使用MVVM的Windows Phone 7应用程序。我有一个列表框,它绑定到我的ViewModel中的项目集合。此视图的主要用途是允许用户根据自己的喜好重新订购项目C# WP7列表框如何允许用户订购项目,c#,.net,silverlight,windows-phone-7,C#,.net,Silverlight,Windows Phone 7,场景:使用MVVM的Windows Phone 7应用程序。我有一个列表框,它绑定到我的ViewModel中的项目集合。此视图的主要用途是允许用户根据自己的喜好重新订购项目 如何在WP7中实现这一点?我希望这样做的方式是简单地允许用户将项目拖动到他想要的位置。这种姿态是否有内在的支持?(我还没找到) 您可以在项目中包括,然后使用GestureListener来监听DragStarted、DragDelta和DragComplete事件。正如AnthonyWJones所说,GestureListe
如何在WP7中实现这一点?我希望这样做的方式是简单地允许用户将项目拖动到他想要的位置。这种姿态是否有内在的支持?(我还没找到) 您可以在项目中包括,然后使用
GestureListener
来监听DragStarted
、DragDelta
和DragComplete
事件。正如AnthonyWJones所说,GestureListener可能就是您要寻找的。我只是想补充一点,您可以对列表使用FluidMoveBehavior,以便在项目顺序更改时,项目能够平滑地动画化。在我看来,它提供了一个大大改进的用户体验
流体移动行为非常简单,只需“插入”现有列表即可,如下所示:
<Style TargetType="ListBox" x:Key="FluidListBox">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel>
<i:Interaction.Behaviors>
<ei:FluidMoveBehavior AppliesTo="Children" Tag="DataContext">
<ei:FluidMoveBehavior.EaseY>
<BackEase EasingMode="EaseInOut" Amplitude="0.5"/>
</ei:FluidMoveBehavior.EaseY>
<ei:FluidMoveBehavior.EaseX>
<BackEase EasingMode="EaseInOut" Amplitude="0.5"/>
</ei:FluidMoveBehavior.EaseX>
</ei:FluidMoveBehavior>
</i:Interaction.Behaviors>
</StackPanel>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
此解决方案非常有效 这是一个控件,您只需将其放入应用程序中,就可以简单地启用拖动手柄并在列表框中移动项目