Windows 8 窗口商店应用程序-将值返回到调用页面
我有一个WinRT“Windows应用商店”应用程序,有两个页面:列表页面和编辑页面。当用户单击列表项并从底部应用程序栏选择“编辑”时,我将该项传递到编辑页面。我需要的是支持两种可能的用户操作:Windows 8 窗口商店应用程序-将值返回到调用页面,windows-8,Windows 8,我有一个WinRT“Windows应用商店”应用程序,有两个页面:列表页面和编辑页面。当用户单击列表项并从底部应用程序栏选择“编辑”时,我将该项传递到编辑页面。我需要的是支持两种可能的用户操作: 如果用户使用后退按钮(顶部导航)返回,我希望未修改的项目返回调用页面 如果用户单击提供的“保存”按钮(在编辑页面上),我想更新项目的各种属性,将其保存到数据存储,并自动将修改后的项目返回到调用页面 无论哪种方式,调用页面都需要使用对项目所做的更改(如果有)更新其显示。我可以完成大部分工作,但我不知道
- 如果用户使用后退按钮(顶部导航)返回,我希望未修改的项目返回调用页面
- 如果用户单击提供的“保存”按钮(在编辑页面上),我想更新项目的各种属性,将其保存到数据存储,并自动将修改后的项目返回到调用页面
TIA我相信,如果我理解了你的问题,你正在寻找以下线索:
WinJS.Navigation.navigate("/path/to/your/page.html", {/*this object will be the second 'options' parameter to your page's ready function });
我认为对于我试图解决的问题,这种方法是错误的。我从未找到一种特别好的方法将值从子页面返回到父页面 相反,我的问题允许采用不同的方法。我有一个在应用程序中跟踪的项目的主列表。此列表已序列化到本地存储。调用子页面时,我传入一个现有项(用于编辑)或一个空实例(用于添加) 当我到达子页面时,我在LoadState方法中调出传入的项。如果传入的项为null,我将创建一个新实例,它将成为我的工作实例 从那里,我允许用户根据需要编辑项目。当用户保存该项时,我从存储器中反序列化主列表。然后,我要么将新项添加到主列表中,要么替换列表中的现有项。然后,我将主列表重新序列化为存储,替换已经存在的内容 当用户返回到调用(父)页面时,我在LoadState方法中从存储器中重新获取项目的主列表,并重新填充该页面。如果更新了现有项或添加了新项,则父页面将准确反映更改。这就是我最终需要实现的一切 我不知道是否有办法达到我最初的要求,但在这种情况下,至少我决定我不需要这样做。可能这种替代方法或类似方法是在“返回”事件中将对象传递到导航堆栈中父页面的唯一方法。您使用的是C#/XAML还是HTML5/JS?
// This function is called whenever a user navigates to this page. It populates the page elements with the app's data.
ready: function (element, options) {