日期:2014-05-17  浏览次数:21000 次

调用NavigationService的时候发生NullReferenceException异常
大家好,我刚开始学习WPF,这两天被一个问题困扰了很久,一直没有找到原因。

我正在编写的程序有两个页面,a.xaml和b.xaml。我使用navigationwindow的方式来组合他们。

a页面点击后会先隐藏,之后按F键触发跳转到b页面。
if(e.KeyCode==Keys.F)
{
  e.Handled = true;
  this.NavigationService.Navigate(b);
  // disable按键触发
  gkh.unhook();
}


b页面上有两个按钮,一个保存,一个取消。

点击保存会调用this.NavigationService.GoBack()方法返回a页面,点击取消则是返回到按钮触发状态,等待下次用户按F键来跳转到b页面。

当我第一次从a.xaml->按F键->b.xaml时,一切正常,按保存按钮返回首页后再次从a.xaml->按F键->b.xaml也正常,但是当我点击取消按钮,按F键想要跳转到b页面就会提示this.NavigationService.Navigate(b);这里有个NullReferenceException的异常。

不知道谁有解决的办法?

回复  引用

------解决方案--------------------
你看看是哪个报NullReferenceException?是B页面还是A页面,这种问题应该比较好定位,自己看调试信息!看看这个this.NavigationService报错的时候鼠标移动到这个对象上,看看是不是null了!·