gpt4 book ai didi

WPF:第二页访问后 NavigationService 为 NULL

转载 作者:行者123 更新时间:2023-12-04 13:00:12 26 4
gpt4 key购买 nike

设想:

我有一个这样的 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 页面被加载。
在第二个页面上,我有一个按钮“主页”,可以导航回主页:
    private void btnHome_Click(object sender, System.Windows.RoutedEventArgs e)
{
Home home = new Home();
this.NavigationService.Navigate(home);
}

我在这里使用“导航”是因为我也想在以后的表单上重用该按钮,以便始终有一个通向起始页的按钮。

所以这也有效,主页被加载。我什至可以在那里一次又一次地单击 btnNewUser,PersonalData 页面可以毫无问题地打开。

但是,当我第二次单击“主页”按钮时,出现“this.NavigationService”为空的错误..

我刚开始使用 WPF,我不知道从哪里开始解决这个问题..有人吗?

最佳答案

试试 KeepAlive=True 在您的 页面 (对于那些将使用 NavigationService 的人)。

出现这个问题的原因是导航服务在您导航到其他页面后被释放以节省更多内存。

Reference - Page Lifetime and the Journal

关于WPF:第二页访问后 NavigationService 为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1400463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com