我正在阅读 Windows Phone 7.5 Unleashed,并且有很多看起来像这样的代码(在页面的代码隐藏中):
bool loaded;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!loaded)
{
DataContext = new SomePageViewModel(State);
loaded = true;
}
((SomePageViewModel)DataContext).LoadTransientState();
...
}
...
这个想法是loaded
当从墓碑状态恢复时这将是错误的,所以我们知道我们想要重建视图模型。
我的问题是:为什么要在if
块外加载瞬态?如果我们的内存没有被丢弃(即应用程序没有被墓碑化),我们就不能继续使用旧的视图模型而不重新加载它的状态吗?
导航到页面时是否应该始终加载瞬态状态,还是仅在从墓碑状态恢复时加载?