[英]WP7 ListBox how to allow user to order items
場景:使用MVVM的Windows Phone 7應用程序。 我有一個ListBox,它綁定到ViewModel中的項目集合。 該視圖的主要用途是允許用戶根據自己的喜好對商品進行重新排序。
如何在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中的項目之間移動即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.