C# 为什么导航在第二次返回页面时引发空异常

C# 为什么导航在第二次返回页面时引发空异常,c#,wpf,navigation,nullreferenceexception,dispatcher,C#,Wpf,Navigation,Nullreferenceexception,Dispatcher,我有一个串行端口控制器(用于感应通过其传输模块的任何对象)连接到USB。当它感觉到任何物体通过传输掉落或不掉落时,在输入命令t后,它会以0或1响应。页面CshDeposit5包含代码Start.xaml是活动在CshDeposit5.xaml中开始和结束的页面,如下所示: Start.xaml->Lang->菜单->CshDeposit5.xaml->TmpMsg.xaml或tmperrormg.xaml->Start.xaml tmperrormg和TmpMsg是向用户显示发生了什么的页面。第

我有一个串行端口控制器(用于感应通过其传输模块的任何对象)连接到USB。当它感觉到任何物体通过传输掉落或不掉落时,在输入命令
t
后,它会以0或1响应。页面
CshDeposit5
包含代码
Start.xaml
是活动在
CshDeposit5.xaml
中开始和结束的页面,如下所示:

Start.xaml
->
Lang
->
菜单
->
CshDeposit5.xaml
->
TmpMsg.xaml
tmperrormg.xaml
->
Start.xaml

tmperrormg
TmpMsg
是向用户显示发生了什么的页面。第一次一切都很好。但当它第二次尝试到达此
CshDeposit5.xaml时,它会对以下代码抛出异常:

Dispatcher.BeginInvoke(new System.Threading.ThreadStart(delegate
{
     NavigationService.Navigate(new Uri("TmpMsg.xaml", UriKind.RelativeOrAbsolute)); 
}));

NullReferenceexception
关于什么?最好在您的问题中添加异常消息。在任何情况下,您的一些变量都不包含类实例,而是
null
。例如
NavigationService
。如果它不是类实例,而是
null
,则它没有方法
Navigate
。为什么它是
null
而不是第二次通过时的类实例,您必须进行调试。我使用了调试器,在第二次调用navigationservice时发现了_noparentpage=-1,但无法解释原因。在navigationservice的第一次断点处,它显示以下内容:CanGoBack:true CanGoForward:false内容:{nwcmd.CshDeposit5}当前源:{CshDeposit5.xaml}源:{CshDeposit5.xaml}关于NavigationService:NavigationService:null的第二个条目,请参见ParentPage:-1
NullReferenceexception
关于什么?最好在您的问题中添加异常消息。在任何情况下,您的一些变量都不包含类实例,而是
null
。例如
NavigationService
一个类实例,但是
null
,它没有方法
Navigate
。为什么它是
null
,而不是第二次通过时的类实例,你必须进行调试。我使用了调试器,在第二次调用navigationservice时发现了_noparentpage=-1,但无法解释为什么?在第一次导航服务的断点处它显示以下内容的时间:CanGoBack:true CanGoForward:false内容:{nwcm.CshDeposit5}当前源:{CshDeposit5.xaml}源:{CshDeposit5.xaml}对于导航服务的第二个条目:NavigationService:null\u noParentPage:-1