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