1

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

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

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

Player p = new Player();

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

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

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

4

1 回答 1

9

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

MainPage.xaml.cs

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

现在该对象Player可以在MainGame.xaml.cs'sOnNavigatedTo(...)方法中获取。

MainGame.xaml.cs

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    var objPlayer = e.Parameter as Player; 
}
于 2013-08-04T15:36:28.890 回答