情景:
我有这样的NavigationWindow风格:
<Style TargetType="NavigationWindow" x:Key="{x:Type NavigationWindow}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="NavigationWindow" >
...
</Style>
我通过加载名为Home.xaml的页面来启动我的应用程序。 在Home.xaml中,我有一个导航到名为PersonalData的另一个页面的按钮:
private void btnNewUser_Click(object sender, System.Windows.RoutedEventArgs e)
{
PersonalData personalData = new PersonalData();
this.NavigationService.Navigate(personalData);
}
这样可以正常工作并加载PersonalData页面。 在第二页上,我有一个“Home”按钮,可以导航回主页:
private void btnHome_Click(object sender, System.Windows.RoutedEventArgs e)
{
Home home = new Home();
this.NavigationService.Navigate(home);
}
我在这里使用“导航”,因为我想在以后的表单上重复使用该按钮,总是有一个指向开始页面的按钮。
所以这也有效并且主页被加载。我甚至可以第二次点击btnNewUser,PersonalData页面打开没有任何问题。
但是,当我第二次点击“主页”按钮时,我收到“this.NavigationService”为空的错误..
我刚刚开始使用WPF,我不知道从哪里开始修复这个......任何人?
答案 0 :(得分:0)
在页面上尝试 KeepAlive = True (对于那些将使用NavigationService的人)。
发生此问题的原因是导航到其他页面后释放NavigationService以节省更多内存。