Xaml 在WindowsRT应用商店中加载包含不同内容的缓存页面

Xaml 在WindowsRT应用商店中加载包含不同内容的缓存页面,xaml,winrt-xaml,windows-store-apps,Xaml,Winrt Xaml,Windows Store Apps,我想为单击ListView项时加载的页面启用缓存。因此,当用户再次单击同一项目时,应用程序将导航到上一个缓存页面。 (我使用的是LayoutWarePages,如果OnNavigatedTo方法中的NavigationMode参数与NavigationMode.New不同,我怀疑这应该是可能的) 有什么想法吗?您可以通过在页面的构造函数中设置页面的属性来影响页面缓存。默认情况下,它是禁用的,但如果启用它,则每次导航到它时都将获得现有页面实例。这意味着,即使用户导航到ListView中的不同项目,

我想为单击ListView项时加载的页面启用缓存。因此,当用户再次单击同一项目时,应用程序将导航到上一个缓存页面。 (我使用的是LayoutWarePages,如果OnNavigatedTo方法中的NavigationMode参数与NavigationMode.New不同,我怀疑这应该是可能的)


有什么想法吗?

您可以通过在页面的构造函数中设置页面的属性来影响页面缓存。默认情况下,它是禁用的,但如果启用它,则每次导航到它时都将获得现有页面实例。这意味着,即使用户导航到ListView中的不同项目,页面的相同实例也将被重用

我发现了一个重新实现导航框架的方法,使其更像Windows Phone中的导航框架,即:

  • 返回时,将使用缓存页面
  • 向前导航时,将创建页面的新实例

如果我正确理解了您的问题,那么您需要与上述两种缓存行为不同的缓存行为。为了实现这一点,您可以基于我链接到的库中的导航框架,或者通过只保留每个项目的页面状态而不是实际缓存页面来模拟行为

您可以通过在页面的构造函数中设置页面的属性来影响页面缓存。默认情况下,它是禁用的,但如果启用它,则每次导航到它时都将获得现有页面实例。这意味着,即使用户导航到ListView中的不同项目,页面的相同实例也将被重用

我发现了一个重新实现导航框架的方法,使其更像Windows Phone中的导航框架,即:

  • 返回时,将使用缓存页面
  • 向前导航时,将创建页面的新实例

如果我正确理解了您的问题,那么您需要与上述两种缓存行为不同的缓存行为。为了实现这一点,您可以基于我链接到的库中的导航框架,或者通过只保留每个项目的页面状态而不是实际缓存页面来模拟行为

感谢您的回答,NavigationCacheMode属性在本例中确实没有太多用处,库会缓存最后一页,但不会缓存单击的每个项目的每个页面…感谢您的回答,NavigationCacheMode属性在这种情况下确实没有多大用处,库会缓存最后一页,但不会缓存单击的每个项目的每个页面。。。