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