2012-10-10 4 views
3

WP7의 MVVM 모델 초보자입니다. 페이지 간 탐색과 애니메이션 전환을 구현하는 데 어려움이 있습니다. 내가 무엇을 달성하고자하는MVVM WP7 - 페이지 탐색 및 전환 애니메이션

:

  1. 페이지 1이 전환 애니메이션 animation1을 시작 될 것입니다 페이지 2로 이동

    하지만 페이지 1이 될 것입니다 페이지 3로 이동하면 다른 전환 애니메이션을 시작합니다 animation2.

  2. ViewModel은 GoBack 탐색을 취소 할 수 있습니다. 검색 모드에있을 때 (텍스트 상자를 볼 수 있으며, 사용자 다시 눌러 키 후, 텍스트 상자의 ViewModel 모드를 검색 할 수있는 스위치가 될 것입니다, 그리고 다시 탐색에서 페이지를 방지 숨기기 예정)

내가 좋아하는 뭔가를 만들어 이 :

ExtendedPhoneApplicationPage : -하여 PhoneApplicationPage 특별한 제어, 인터페이스 INavigation에 의해 호출,하여 PhoneApplicationPage에서

MainViewModel 뷰 모델에 대한 요청을 상속 : INavigation - MainViewModel 뷰 모델이며, 인터페이스 INavigation를 구현합니다.

어떻게 작동합니까?

  1. 사용자 키
  2. 이 ExtendedPhoneApplicationPage

가 MVVM으로 올바르게되어보기 지금

  • 적절한 애니메이션을 반환 MainViewModel 어떤 애니메이션을 시작한다 (INavigation을 구현하거나 다른) MainViewModel에게 다시 클릭 ? 어떻게 이것을 달성 할 수 없다면?

    편집 : 아주 좋은 해결책이 아닌 내가 위에 쓴 아마 어떤

    , 나는 뷰 모델은, 및 명령을 데이터 바인딩에 의해보기와 통신한다는 것을 읽었다. 나는 오늘 이것을 생각하고 있었고 생각이났다.

    <Navigation> 
         <NavigationInTransition> 
          <NavigationInTransition.ForwardTransitions> 
           <ForwardTransition NavigateTo="page2.xaml"> 
            <ForwardTransition.Animation> 
             <SlideTransitionAnimation Mode="ForwardIn"/> 
            </ForwardTransition.Animation> 
           </ForwardTransition> 
           <ForwardTransition NavigateTo="page3.xaml"> 
            <ForwardTransition.Animation> 
             <TurnstyleTransitionAnimation Mode="ForwardIn"/> 
            </ForwardTransition.Animation> 
           </ForwardTransition> 
          </NavigationInTransition.ForwardTransitions> 
         </NavigationInTransition> 
         <BackKeyPressed IsPrevent="{Binding SomethingBool}" Command="{Binding BackKeyPressed}"/> 
    </Navigation> 
    
  • 답변

    0

    App.xaml에서 생성 된 RESOURSE

    <Style x:Key="PageStyle" TargetType="phone:PhoneApplicationPage"> 
        <Setter Property="toolkit:TransitionService.NavigationInTransition"> 
        <Setter.Value> 
         <toolkit:NavigationInTransition> 
         <toolkit:NavigationInTransition.Backward> 
          <toolkit:TurnstileTransition Mode="BackwardIn" /> 
         </toolkit:NavigationInTransition.Backward> 
         <toolkit:NavigationInTransition.Forward> 
          <toolkit:TurnstileTransition Mode="ForwardIn" /> 
         </toolkit:NavigationInTransition.Forward> 
         </toolkit:NavigationInTransition> 
        </Setter.Value> 
        </Setter> 
        <Setter Property="toolkit:TransitionService.NavigationOutTransition"> 
        <Setter.Value> 
         <toolkit:NavigationOutTransition> 
         <toolkit:NavigationOutTransition.Backward> 
          <toolkit:TurnstileTransition Mode="BackwardOut" /> 
         </toolkit:NavigationOutTransition.Backward> 
         <toolkit:NavigationOutTransition.Forward> 
          <toolkit:TurnstileTransition Mode="ForwardOut" /> 
         </toolkit:NavigationOutTransition.Forward> 
         </toolkit:NavigationOutTransition> 
        </Setter.Value> 
        </Setter> 
    </Style> 
    

    페이지 전환 스타일 = "{정적 리소스 PageStyle}"

    와 : XAML에서

    은 다음과 같이해야한다