2010-11-21 4 views
2

Senaryo: MVVM kullanarak Windows Phone 7 uygulaması. ViewModel'imdeki öğeler koleksiyonuna bağlı bir ListBox'ım var. Bu görüşün ana kullanımı, kullanıcının öğeleri beğenisine yeniden sipariş etmesine izin vermektir.WP7 ListBox, kullanıcının ürün siparişi vermesine nasıl izin verilir

Bunu WP7'de nasıl uygularım? Bunu yapmak istediğim şey, kullanıcının istediği konuma öğeleri sürüklemesine izin vermek olurdu. Böyle bir jest için yerleşik destek var mı? (Hiç bulamadım).

cevap

1

AnthonyWJones tarafından belirtildiği gibi GesureListener muhtemelen sizin aradığınız şeydir. Öğelerin sıralaması değiştiğinde öğelerin düzgün bir şekilde animasyon yapabilmesi için listeye bir FluidMoveBehavior öğesi kullanabileceğinizi eklemeyi istedim. Bence, çok daha gelişmiş bir kullanıcı deneyimi sunuyor.

bir sıvı hareket davranışı aynen böyle, mevcut listenizdeki "takmayı" yeterince basittir:

<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>