【发布时间】:2013-04-09 00:25:50
【问题描述】:
我创建了一个非常简单的项目来测试导航。以下是步骤。
- 创建一个空白应用程序 (XAML/C#) 项目。
- 将基本页面“PageTwo”添加到项目中。
- 将 HyperlinkButton 和 TextBox 添加到 MainPage。
- 在 MainPage 的代码隐藏中,使用 Frame.Navigate 方法导航到 PageTow 并将 TextBox 的 Text 作为参数传递。
- 重写 PageTwo 的 OnNavigatedTo 方法以获取传递的参数。
运行项目,在TextBox中输入一些文本,然后点击PageTwo的按钮,效果很好,但是如果我从PageTwo点击内置的后退按钮,我会得到一个异常:值不能为空。如果我注释了 override OnNavigatedTo 方法,Back 按钮可以毫无例外地将我引导到 Main Page。
有人可以帮忙吗?
MainPage.xaml:
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<StackPanel>
<TextBox Width="200" Name="TB"/>
<HyperlinkButton Content="Go to PageTwo" Click="HyperlinkButton_Click_1"/>
</StackPanel>
</Grid>
MainPage.xaml.cs:
private void HyperlinkButton_Click_1(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(PageTwo), TB.Text);
}
PageTwo.xaml:
<TextBlock Name="TB" Grid.Row="1"/>
PageTwo.xaml.cs:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
TB.Text = e.Parameter as string;
}
【问题讨论】:
-
这不是我的作业...
-
对不起,你能告诉我们你的代码吗?
-
我已添加代码
-
你能把项目上传到 SkyDrive 或 Dropbox 上,所以我可以检查问题,因为我无法重新生成你的问题。