场景:使用MVVM的Windows Phone 7应用程序。我有一个列表框绑定到我的ViewModel的项目集合。该视图的主要用途是允许用户根据自己的喜好重新订购商品。WP7 ListBox如何让用户订购商品
如何在WP7中实现这个功能?我想这样做的方式是简单地让用户将物品拖到他想要的位置。是否有对这种手势的内置支持? (我一直没有找到任何)。
场景:使用MVVM的Windows Phone 7应用程序。我有一个列表框绑定到我的ViewModel的项目集合。该视图的主要用途是允许用户根据自己的喜好重新订购商品。WP7 ListBox如何让用户订购商品
如何在WP7中实现这个功能?我想这样做的方式是简单地让用户将物品拖到他想要的位置。是否有对这种手势的内置支持? (我一直没有找到任何)。
你可以在项目中包含的Silverlight for Windows Phone Toolkit,然后使用GestureListener
监听DragStarted
,DragDelta
和DragComplete
事件。
正如AnthonyWJones所说的,GesureListener可能就是您要找的。我只想补充一点,您可以使用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>
此解决方案的作品真的很好
这是一个控制你只需拖放到您的应用程序,您可以简单地启用拖动手柄并在ListBox中移动项目。