场景:
我有这样的NavigationWindow样式:
<Style TargetType="NavigationWindow" x:Key="{x:Type NavigationWindow}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="NavigationWindow" >
...
</Style>
Run Code Online (Sandbox Code Playgroud)
我启动我的应用程序,加载一个名为Home.xaml的页面.在Home.xaml中,我有一个导航到另一个名为PersonalData的页面的按钮:
private void btnNewUser_Click(object sender, System.Windows.RoutedEventArgs e)
{
PersonalData personalData = new PersonalData();
this.NavigationService.Navigate(personalData);
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,并加载PersonalData页面.在第二页上,我有一个导航回主页的"Home"按钮:
private void btnHome_Click(object sender, System.Windows.RoutedEventArgs e)
{
Home home = new Home();
this.NavigationService.Navigate(home);
}
Run Code Online (Sandbox Code Playgroud)
我在这里使用"导航"是因为我想在以后的表单上重复使用该按钮,总是有一个通向开始页面的按钮.
所以这也有效,主页被加载.我甚至可以再次点击btnNewUser那里,PersonalData页面打开没有任何问题.
但是,当我第二次单击"主页"按钮时,出现"this.NavigationService"为空的错误.
我刚刚开始使用WPF,我不知道从哪里开始修复这个......任何人?
Hos*_*ost -1
在您的页面上尝试KeepAlive=True(对于那些将要使用 NavigationService 的页面)。
发生此问题的原因是导航服务在您导航到其他页面后被释放,以节省更多内存。
| 归档时间: |
|
| 查看次数: |
2706 次 |
| 最近记录: |