Windows Phone 8 NavigationCacheMode = NavigationCacheMode.Disabled与Windows 8 RT NavigationCacheMode = NavigationCacheMode.Disabled相同吗? 如果是这样,那么我们导航回来的页面会在windows phone 8中再次创建(构造函数被调用)吗? 如果页面再次创建,那我怎么能在模拟器中重现这个场景(如果是wp8)?
答案 0 :(得分:1)
据我所知,这在wp8中不存在。有两种方法可以控制这种行为,
1)每次在On页面上加载导航到事件时调用您希望运行的任何代码,而不是在页面的构造函数中调用它。下面的“LoadDataFromOnNavigatedTo()”方法将始终在页面加载时执行(包括从锁定屏幕)
// Constructor
public MainPage()
{
InitializeComponent();
MessageBox.Show("Data Loaded from constructor");
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
MessageBox.Show("Data Loaded from onnavigated to");
base.OnNavigatedTo(e);
}
2)首选选项是使用IoC容器,例如MVVMLight中提供的容器,并控制实例化ViewModel的时间。然后,您可以选择将它们实例化一次并重新使用应用程序范围的范围,或以瞬态方式。