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