2011-02-09 3 views
3

전화의 뒤로 버튼을 사용하여 뒤로 이동할 때 어떻게 ViewModel을 새로 고칠 수 있습니까?MVVM을 사용하여 뒤로 탐색 할 때 ViewModel을 새로 고치려면

저는 전화의 뒤로 버튼을 사용하고 있지만 NavigationService.GoBack()을 호출하면 스택의 이전 페이지로 이동하지만 생성자는 내 View 또는 ViewModel에서 호출되지 않습니다.

답변

6

기본 페이지 클래스에서 OnNavigatingTo 이벤트를 연결하고 ViewModel에서 메서드를 호출 할 수 있습니다. 나는 나와 함께 VS이없는 있지만, 의사 코드는 다음과 같습니다

public void OnNavigatingFrom(object sender, eventargs e) 
{ 
    var vm = this.DataContext as BaseViewModel; 
    if(vm != null) 
    { 
     vm.Save(); 
    } 
} 
+0

내가 가진 :

MyBasePAge에서

: 페이지를 떠나기 전에 같은 작업을 수행 할 수 있습니다

public void OnNavigatingTo(object sender, eventargs e) { var vm = this.DataContext as BaseViewModel; if(vm != null) { vm.Initialize(); } } 

페이지 _Loaded 플래그를 추가하여 초기 페이지로드시 Initialize를 호출하지 못하도록합니다. 고마워. 어쩌면 초기화() 대신 새로 고침()을 호출해야합니다 – Tyler

+0

PhoneApplicationPages를 기본 페이지에서 상속하려면 어떻게해야합니까? – Alan

관련 문제