3
使用手機上的後退按鈕進行導航時,如何刷新ViewModel?如何在使用MVVM進行導航時刷新ViewModel
我在手機上使用後退按鈕,但我相信它與調用NavigationService.GoBack()相同,後者導航到堆棧中的上一頁,但構造函數未在我的View或ViewModel中調用。
使用手機上的後退按鈕進行導航時,如何刷新ViewModel?如何在使用MVVM進行導航時刷新ViewModel
我在手機上使用後退按鈕,但我相信它與調用NavigationService.GoBack()相同,後者導航到堆棧中的上一頁,但構造函數未在我的View或ViewModel中調用。
你可以在OnNavigatingTo事件中掛鉤一個基本的Page類,並在你的ViewModel上調用一個方法。我沒有VS與我,但僞代碼將是:
在MyBasePAge:頁
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();
}
}
我在那裏添加一個_Loaded標誌,以防止它在初始頁面加載時調用Initialize。似乎工作,謝謝。也許我應該將其稱爲Refresh()而不是Initialize() – Tyler 2011-02-10 00:51:22