2011-02-09 10 views
3

電話機の戻るボタンを使用して戻るときに、どのようにViewModelを更新できますか?MVVMを使用して戻るときにViewModelをリフレッシュする方法

私は電話機の戻るボタンを使用していますが、NavigationService.GoBack()を呼び出すと同じですが、スタックの前のページに移動しますが、コンストラクタはViewまたはViewModelでは呼び出されません。

答えて

6

基本ページクラスにOnNavigatingToイベントをフックし、ViewModelでメソッドを呼び出すことができます。あなたがページを離れる前に同じことを行うことができます

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

をページ

:私は私と一緒にVSを持っていませんが、擬似コードは次のようになります。

MyBasePAgeに

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

私が持っていました_Loadedフラグを追加して初期ページのロード時にInitializeを呼び出さないようにします。ありがとうございました。たぶん私は初期化()の代わりにリフレッシュ()を呼び出す必要があります – Tyler

+0

PhoneApplicationPagesはどのようにしてベースページから継承できますか? – Alan

関連する問題