場景:使用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中移動項目。