Как обновить вашу ViewModel при переходе назад с использованием MVVM - PullRequest
3 голосов
/ 09 февраля 2011

При переходе назад с помощью кнопки «Назад» на телефоне, как я могу обновить мою ViewModel?

Я использую кнопку возврата на телефоне, но я считаю, что она аналогична вызову NavigationService.GoBack (), который переходит на предыдущую страницу в стеке, но конструктор не вызывается в моих View или ViewModel.

1 Ответ

6 голосов
/ 09 февраля 2011

Вы можете подключить базовый класс Page к событию OnNavigatingTo и вызвать метод в вашей ViewModel.У меня нет VS, но псевдокод будет выглядеть так:

в MyBasePAge: Page

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

Вы можете сделать то же самое перед тем, как покинуть страницу:

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