我正在开发一个Windows Phone应用程序,以下是我遇到的问题:
我有三个页面,我们称其为页面1、2、3。
在页面1中,我有一个名为“开始下载”的按钮。单击该按钮并使用NavigateService.Navigate(page2Uri)导航到页面2。
页面2从互联网上查询并下载图像,因此在它的OnNavigateTo处理程序中,我检查页面返回堆栈,如果它是从页面1导航而来,我将进行下载。在这个页面的应用程序栏中,我有一个按钮可以导航到页面3。
页面3是一系列选项的列表,这些选项将对在页面2中下载的图像执行某些行为。一旦我选择了一个选项,我想回到页面2并对已加载的图像执行某些操作。 现在出现了一个问题: 如果我使用NavigateService.Navigate(page2Uri)从页面3导航到页面2,它将调用Page2构造函数和OnNavigateTo处理程序,这将导致它失去已经拥有的每个实例变量。 但是,如果我使用NavigatService.GoBack,它将返回到页面2,然后意识到返回堆栈顶部条目是页面1(因为页面1->页面2->页面3)。因此,它将重新下载所有内容。
当从页面3返回到页面2时,我不希望再次下载任何内容。所以想知道是否有人有好的想法解决这个问题。
谢谢。
我有三个页面,我们称其为页面1、2、3。
在页面1中,我有一个名为“开始下载”的按钮。单击该按钮并使用NavigateService.Navigate(page2Uri)导航到页面2。
页面2从互联网上查询并下载图像,因此在它的OnNavigateTo处理程序中,我检查页面返回堆栈,如果它是从页面1导航而来,我将进行下载。在这个页面的应用程序栏中,我有一个按钮可以导航到页面3。
页面3是一系列选项的列表,这些选项将对在页面2中下载的图像执行某些行为。一旦我选择了一个选项,我想回到页面2并对已加载的图像执行某些操作。 现在出现了一个问题: 如果我使用NavigateService.Navigate(page2Uri)从页面3导航到页面2,它将调用Page2构造函数和OnNavigateTo处理程序,这将导致它失去已经拥有的每个实例变量。 但是,如果我使用NavigatService.GoBack,它将返回到页面2,然后意识到返回堆栈顶部条目是页面1(因为页面1->页面2->页面3)。因此,它将重新下载所有内容。
当从页面3返回到页面2时,我不希望再次下载任何内容。所以想知道是否有人有好的想法解决这个问题。
谢谢。