在XAML页面之间传递值

gor*_*izu 1 .net c# xaml windows-store-apps

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

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

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

Player p = new Player();
Run Code Online (Sandbox Code Playgroud)

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

this.Frame.Navigate(typeof(MainGame));
Run Code Online (Sandbox Code Playgroud)

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

Xyr*_*oid 9

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

MainPage.xaml.cs中

Player p = new Player();
this.Frame.Navigate(typeof(MainGame), p);
Run Code Online (Sandbox Code Playgroud)

现在的这个对象Player可以得到MainGame.xaml.csOnNavigatedTo(...)方法.

MainGame.xaml.cs

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    var objPlayer = e.Parameter as Player; 
}
Run Code Online (Sandbox Code Playgroud)