在Windows Phone 7 Silverlight应用程序中,我使用
调用新页面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 :(得分:21)
在他的书"Programming Windows Phone 7"(第6章,第3节,“在页面中共享数据”)中,Charles Petzold推荐了App
类中的属性(派生自Application
)。每个页面都可以通过Application.Current
访问它。字典PhoneApplicationService.Current.State
也很有趣。这对墓碑很有用。整章可能对阅读很有意思。
答案 1 :(得分:2)
答案 2 :(得分:0)
看看我是如何在PhoneCore Framework中实现导航的:A framework for building of WP7 application。不久,我在WP7导航的基础上构建了我的导航服务。它使用自定义页面映射,并允许自定义参数传递给视图模型。
答案 3 :(得分:0)
使用全局变量,为GlobalVariables创建一个新类:
public static class GlobalVariables
{
public static string my_string = "";
public static int my_int = -1;
}
然后,您可以访问不同页面的全局变量类:
GlobalVariables.variable_name;
答案 4 :(得分:-1)
您应该将对象保存到IsolatedStorage。
使用Json.net库进行序列化,并将字符串保存到IsolatedStorage。在下一页上从IsolatedStorage获取字符串并使用json.net库将其转换回您想要的对象!