快速点击时会发生异常

时间:2014-06-24 02:24:10

标签: wpf vb.net nullreferenceexception

我在VB.NET中运行WPF。我的页面由6个类别组成。每个类别都将导航到自己的页面。让我们说第一页是时尚,其次是餐馆,服务,健康,专业和室内装饰。当我像普通人一样点击时,没有问题。但是当我快速点击时,比如加速点击到餐馆然后服务,然后健康一段时间,它将在代码处于异常的功能导航。为什么这会在快速点击时发生?稳定点击没有问题。

导航时标题为" System.NullReferenceException未处理":

Private Sub navigate()
    Select Case mytab
        Case 1
            NavigationService.Navigate(New Uri(GotoCategory1Screen, UriKind.RelativeOrAbsolute))
        Case 2
            NavigationService.Navigate(New Uri(GotoCategory2Screen, UriKind.RelativeOrAbsolute))
        Case 3
            NavigationService.Navigate(New Uri(GotoCategory3Screen, UriKind.RelativeOrAbsolute))
        Case 4
            NavigationService.Navigate(New Uri(GotoCategory4Screen, UriKind.RelativeOrAbsolute))
        Case 5
            NavigationService.Navigate(New Uri(GotoCategory5Screen, UriKind.RelativeOrAbsolute))
        Case 6
            NavigationService.Navigate(New Uri(GotoCategory6Screen, UriKind.RelativeOrAbsolute))
    End Select
End Sub

有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

通常快速点击不是问题,但你有另一种不使用uri的方法,因此不需要从uri初始化

您可以使用NavigationService.Navigate的其他超载,它使用实例而不是uri,因此您可以保证在导航之前已完成初始化。这也可以让您检测错误源,初始化或导航。

例如

 Category1Screen screen1 = new Category1Screen();
 NavigationService.Navigate(screen1);
Category1Screen以上的

只是一个示例,您必须使用实际的类。

应该解决问题,如果问题仍然存在,那么可能你错过了相关的代码,你可能需要查看屏幕的初始化代码