2010-11-10 81 views
23

在Windows Phone 7的Silverlight应用程序调用我使用WP7:将参数传递到新页面?

NavigationService.Navigate(new Uri("/View/SecondPage.xaml", UriKind.Relative)); 

现在我想参数传递给新的一页新的一页。我明白了一个简单的参数,可以使用通过:

NavigationService.Navigate(new Uri("/View/TilgungsratePage.xaml?id=4711", UriKind.Relative)); 

,并在使用

protected override void OnNavigatedTo(Microsoft.Phone.Navigation.PhoneNavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    String id = NavigationContext.QueryString["id"]; 
} 

对于简单的参数,这是确定新的页面读取,但我怎么通过一个列表?
复杂的物体?
除了简单的值之外什么都没有?

+0

看看这篇文章,以及: WP7 Master - 具有存储库模式的详细信息导航](http://windowsphonegeek.com/articles/WP7-Master---Detail-Navigation-with-Repository-Pattern) – 2012-06-13 15:12:29

+1

查看此链接的最后一个方法:http:// www.c-sharpcorner.com/UploadFile/deepak.sharma00/different-ways-of-passing-values-between-windo ws-phone-7-pag/ – 2012-09-16 05:36:54

+0

看看这个问题http://stackoverflow.com/questions/12444816/how-to-pass-values-parameters-between-xaml-pages – 2013-05-13 23:43:33

回答

21

在他的书中"Programming Windows Phone 7"(第6章,第3节, “共享数据中的网页”) Charles Petzold建议亲App类(衍生自Application)。每个页面都可以通过Application.Current访问。有趣的是字典PhoneApplicationService.Current.State。对墓碑操作很有用。整章可能对阅读很有意思。

+0

而你不想要有全局状态还有其他方法http://stackoverflow.com/questions/12444816/how-to-pass-values-parameters-between-xaml-pages – 2013-02-06 23:57:41

0

看看我在PhoneCore Framework中如何实现导航:A framework for building of WP7 application。不久之后,我在WP7导航之上构建了我的导航服务。它使用自定义页面映射,并允许自动传递自定义参数以查看模型。

-1

您应该将对象保存到IsolatedStorage。

只需使用Json.net库将其序列化并将该字符串保存到IsolatedStorage即可。在下一页中,从IsolatedStorage中获取字符串,并使用json.net库将其转换回您想要的对象!

+0

我认为这是过度杀伤只是为了传递意见。将数据放入App对象更好。 – Nathan 2012-05-02 13:35:22

0

使用全局变量,作出GlobalVariables一个新的类:

public static class GlobalVariables 
{ 
    public static string my_string = ""; 
    public static int my_int = -1; 
} 

然后你就可以访问全局变量类不同的网页:

GlobalVariables.variable_name;