在XAML页面之间传递值

我正在尝试使用VS 2012和C#构建我的第一个Windows 8 Metro应用程序。

它由一个简单的2页布局组成,第一个是演示和设置页面,第二个是游戏本身(测验)。

我在MainPage.xaml.cs中创建了一个Player实例,它存储了玩家名称,游戏模式(简单,中等,硬)和问题主题(最终)。

Player p = new Player(); 

每当设置值时,我都会使用导航到MainGame.xaml

 this.Frame.Navigate(typeof(MainGame)); 

问题是:我如何在页面之间传递这样的值,所以我可以设置一个文本块,说“正在播放名字”?

您可以在FrameNavigate(...)方法中传递参数对象。 所以你应该这样写。

MainPage.xaml.cs中

 Player p = new Player(); this.Frame.Navigate(typeof(MainGame), p); 

现在, Player对象可以进入MainGame.xaml.csOnNavigatedTo(...)方法。

MainGame.xaml.cs

 protected override void OnNavigatedTo(NavigationEventArgs e) { var objPlayer = e.Parameter as Player; }