我正在开发一个 Windows Phone 应用程序,这是我遇到问题的场景:
所以我有三页,我们称之为第 1、2、3 页。
在第 1 页中,我有一个名为start downloading
. 单击按钮并使用NavigateService.Navigate(page2Uri)
并导航到 page2。
第 2 页进行查询并从 Internet 下载图像,因此在其OnNavigateTo
处理程序中,我检查页面返回堆栈,如果它是从第 1 页导航的,我将进行下载。在此页面的应用栏中,我有一个可以导航到 page3 的按钮。
第 3 页是一个选项列表,这些选项将对第 2 页中下载的图像执行某些行为。一旦我选择了一个选项,我想回到第 2 页并在加载的图像上执行一些行为。
问题来了:
如果我NavigateService.Navigate(page2Uri)
从 page3 导航到 page2,它将再次调用 Page2 构造函数和OnNavigateTo
处理程序,这将导致它丢失它已经获得的每个实例变量。
但是如果我使用NavigatService.GoBack
它会回到page2,然后意识到backstack top entry是page1(因为page1 -> page2 -> page3)。所以它会再次重新下载所有内容。
当将表单第 3 页导航回第 2 页时,我不希望再次下载任何内容。所以想知道是否有人对此有好主意。
谢谢你。