Wpf Windows Phone 8和Windows 8 RT NavigationCacheMode之间的差异
Windows Phone 8 NavigationCacheMode=NavigationCacheMode.Disabled是否与Windows 8 RT NavigationCacheMode=NavigationCacheMode.Disabled相同? 如果是这样,我们导航回的页面是否会在WindowsPhone8中再次创建(调用构造函数)?Wpf Windows Phone 8和Windows 8 RT NavigationCacheMode之间的差异,wpf,windows-phone-7,windows-phone-8,winrt-xaml,Wpf,Windows Phone 7,Windows Phone 8,Winrt Xaml,Windows Phone 8 NavigationCacheMode=NavigationCacheMode.Disabled是否与Windows 8 RT NavigationCacheMode=NavigationCacheMode.Disabled相同? 如果是这样,我们导航回的页面是否会在WindowsPhone8中再次创建(调用构造函数)? 如果再次创建页面,那么我如何在模拟器中重现该场景(在wp8的情况下)?据我所知,wp8中不存在这种情况。控制这种行为有两种方法 1) 调用您希望
如果再次创建页面,那么我如何在模拟器中重现该场景(在wp8的情况下)?据我所知,wp8中不存在这种情况。控制这种行为有两种方法 1) 调用您希望在每次页面加载时在On page navigated to事件中运行的任何代码,而不是在页面的构造函数中调用它。页面加载时(包括从锁屏加载)将始终执行下面的“LoadDataFromOnNavigatedTo()”方法
2) 首选选项是使用IoC容器,如MVVMLight中提供的容器,并控制ViewModels的实例化时间。然后,您可以选择实例化它们一次,并在应用程序范围内重复使用,或者以临时方式重复使用 请注意:在首次加载和回访时将调用OnNavigatedTo。我们正在OnNavigatedTo()中加载数据,不希望每次调用OnNavigatedTo时都一次又一次地获取数据。我们的问题是,如果遇到内存不足的情况,Windows Phone操作系统是否可以删除后堆栈中的一些页面?当用户返回时,该页面将再次创建,我们需要再次加载其数据吗?或者操作系统永远不会在windows phone的Backback中删除页面?当导航到某个页面时,手机和平板电脑上每次都会调用构造函数。但是当回到上一页时,在平板电脑上调用了构造器,但在手机上没有调用构造器。你能解释一下这种区别吗?有没有可能在手机上,当系统内存变低,然后再返回时,会在手机上调用构造?或者在手机上导航时永远不会调用构造函数?
// 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);
}