带参数的Frame GoBack事件

时间:2015-01-18 01:24:28

标签: c# xaml microsoft-metro

我正在使用C#构建一个XAML Metro应用程序,并有一些想法。 我使用两个页面,MainPage和OtherPage。

当我点击MainPage中的按钮时,我会使用

转到另一个按钮
this.Frame.Navigate(typeof(OtherPage), AndAnObjectIsSentTo);

要从OtherPage返回MainPage,我有一个(取消)按钮,代码为Frame.GoBack();

当我回去时我想要实现的是发送一个参数和(编辑:不是"重新加载"但只是运行一个函数)MainPage(我回到的页面)。我该怎么做?

2 个答案:

答案 0 :(得分:2)

GoBack没有传递参数,因此您需要通过外部渠道传递数据。

一种可能性是将其作为传递给Frame.Navigate的对象中的属性包含在内。原始页面可以跟踪它发送的内容,然后查看使用NavigationMode.Back调用OnNavigatedTo时发送的内容。

还要考虑Frame.Navigate中的参数不推荐使用复杂对象,因为只有简单类型才支持导航状态序列化。典型的替代方法是将字符串或GUID密钥传递到查找表中。此表还可用于存储返回值。

最后,如果页面共享数据模型,您可以将数据存储在那里,但您可能不希望使用命令参数混淆数据。

答案 1 :(得分:-2)

您可以随时使用Navigate方法返回上一页,就像您到达那里一样。然后你也可以传递一个参数。

这对你不起作用吗?