2010-11-21 4 views
2

시나리오 : MVVM을 사용하는 Windows Phone 7 응용 프로그램. 내 ViewModel의 항목 컬렉션에 바인딩 된 ListBox가 있습니다. 이보기의 주 용도는 사용자가 항목을 원하는대로 다시 정렬 할 수 있도록하는 것입니다.WP7 ListBox 사용자가 항목을 주문할 수있는 방법

WP7에서 어떻게 구현합니까? 이 작업을 수행하려는 방식은 사용자가 원하는 위치로 항목을 드래그 할 수 있도록 허용하는 것입니다. 그러한 제스처에 대한 기본 제공 지원이 있습니까? (나는 어떤 것도 찾을 수 없었다).

답변

1

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> 
관련 문제