我在我的 Windows 8 应用程序(C#)中使用拆分页面模板,根据它的代码,当我们从列表视图中选择任何项目然后终止应用程序或按下后退按钮时,它应该记住当前选定的项目并在调试后我认为它保存pageState 中的当前选定值。但是在重新加载同一页面后,它无法重新加载(选择)相同的选定项目。我尝试使用拆分应用程序以及将拆分页面添加到我的应用程序。分页模板中是否有任何错误?
谢谢
我在我的 Windows 8 应用程序(C#)中使用拆分页面模板,根据它的代码,当我们从列表视图中选择任何项目然后终止应用程序或按下后退按钮时,它应该记住当前选定的项目并在调试后我认为它保存pageState 中的当前选定值。但是在重新加载同一页面后,它无法重新加载(选择)相同的选定项目。我尝试使用拆分应用程序以及将拆分页面添加到我的应用程序。分页模板中是否有任何错误?
谢谢
您应该设置 SplitPage NavigationCacheMode="Enabled"
。
并且还要确保每个项目在
if (selectedItem != null) pageState["SelectedItem"] = selectedItem.UniqueId;
默认的拆分页面模板应用程序适合我。如果您在第一页 (ItemsPage) 上选择一个组,然后从列表中选择一个项目以访问 SplitPage,则该项目将在您位于 SplitPage 时暂停或终止。
但是,如果您点击后退按钮,应用程序不会记住您选择了该项目。一旦您返回 ItemsPage,即使您选择相同的组,它也会加载页面的“新”版本并选择默认的第一个元素。如果要恢复每个组的最后一个选定项目,则必须添加自己的代码。
请注意,还有一个名为NavigationCacheMode的属性将允许应用缓存 ItemsPage;但是,如果您这样做,您将看到最后一个选定组的 ItemsPage(和选定项),即使您从 ItemsPage 中选择了不同的组(换句话说,这在此处不起作用)。
最后,请注意,要测试“终止”状态,您需要通过 Visual Studio 中的模拟器运行应用程序并选择暂停和关闭。如果您只是退出应用程序(Alt+F4 或向下滑动),应用程序状态为“ClosedByUser”,在这种情况下默认不会恢复状态。