使用MVVM导航时如何刷新ViewModel

Tyl*_*ler 3 silverlight mvvm light windows-phone-7

使用手机上的后退按钮导航时,如何刷新ViewModel?

我正在使用手机上的后退按钮,但我认为它与调用NavigationService.GoBack()相同,后者导航到堆栈上的上一页,但构造函数未在我的View或ViewModel中调用.

Mat*_*uGD 6

您可以在OnNavigatingTo事件中挂接基类Page,并在ViewModel上调用方法.我没有VS,但伪代码是:

在MyBasePAge中:页面

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

你可以在离开页面之前做同样的事情:

public void OnNavigatingFrom(object sender, eventargs e)
{
   var vm = this.DataContext as BaseViewModel;
   if(vm != null)
   {
      vm.Save();
   }
 }
Run Code Online (Sandbox Code Playgroud)