我正在尝试使用 VS 2012 和 C# 构建我的第一个 Windows 8 Metro 应用。
它由一个简单的 2 页面布局组成,第一个页面是演示和设置页面,第二个页面由游戏本身(测验)组成。
我在 MainPage.xaml.cs 中创建了一个 Player 实例,用于存储玩家名称、游戏模式(简单、中等、困难)和问题的主题(最终)。
Player p = new Player();
每当设置值时,我都会使用
导航到 MainGame.xamlthis.Frame.Navigate(typeof(MainGame));
问题是:我如何在页面之间传递这些值,以便我可以设置一个文本 block 说“名字正在播放”?
最佳答案
可以在Frame
中传递参数对象的 Navigate(...)
方法。所以你应该这样写。
MainPage.xaml.cs
Player p = new Player();
this.Frame.Navigate(typeof(MainGame), p);
现在 Player
的对象可以进入MainGame.xaml.cs
的 OnNavigatedTo(...)
方法。
主游戏.xaml.cs
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var objPlayer = e.Parameter as Player;
}
关于c# - 在 XAML 页面之间传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18041112/