如何通过Windows应用商店中的页面传递参数?

时间:2015-01-18 17:36:54

标签: c# wpf xaml gridview windows-store-apps

我正在制作 Windows商店应用,我需要从名为类别的GridView导航到另一个名为的GridView,每个类别都有它自己的物品。

因此,通过使用数据绑定,我应该有一类类别和一个项目,然后根据特定类别用户的选择调用特定的技巧功能。< / em>的

如何将用户的选择从categories.xaml.cs传递给items.xaml.cs?我希望用户的选择位于item.cs中使用的变量中。

我试图覆盖OnNavigateTo,但我没有。

提前感谢你们所有人。

2 个答案:

答案 0 :(得分:1)

假设您在categories.xaml.cs中有一个名为selectedItem的字符串变量,用于保存在gridview中选择的项目的名称。要发送selectedItem的值,您应该在categories.xaml.cs的OnNavigatedFrom方法中编写以下代码行。

this.Frame.Navigate(typeof(items), selectedItem);

要获取selectedItem的值,您应该在items.xaml.cs的navigationHelper_LoadState方法中编写以下代码。

//you can change the name of the variable below
string selectedItem=e.NavigationParameter as string;

您可以找到更多详细信息on this page。希望有所帮助。

答案 1 :(得分:0)

请注意,建议仅将简单的内置类型作为参数传递 - 如int或string。这样Frame.Get/SetNavigationState()可用于暂停/恢复,以存储和重新整合Frame的导航历史记录。

另请注意,您无法在页面构造函数中获取导航参数 - 您需要等待OnNavigatedTo()覆盖或Page.NavigatedTo事件才能检索它。您可以通过您自己的某个服务传递参数,然后在页面构造函数中获取它,但是您会遇到特殊情况(后退/前进导航,补液),您需要付出一些努力来重新实现该功能。