2013-05-25 25 views
1

時,下面的代碼產生ArgumentNullException:ArgumentNullException調用RoutedEvent

Public Custom Event PlayerDetailRequested As RoutedPropertyChangedEventHandler(Of Player) 

    AddHandler(ByVal value As RoutedPropertyChangedEventHandler(Of Player)) 
     Me.AddHandler(PlayerDetailRequestedEvent, value) 
    End AddHandler 

    RemoveHandler(ByVal value As RoutedPropertyChangedEventHandler(Of Player)) 
     Me.RemoveHandler(PlayerDetailRequestedEvent, value) 
    End RemoveHandler 

    RaiseEvent(ByVal sender As Object, ByVal e As RoutedPropertyChangedEventArgs(Of Player)) 
     Me.RaiseEvent(e) 
    End RaiseEvent 
End Event 

Public Shared ReadOnly PlayerDetailRequestedEvent As RoutedEvent = _ 
        EventManager.RegisterRoutedEvent("PlayerDetailRequested", _ 
        RoutingStrategy.Bubble, _ 
        GetType(RoutedPropertyChangedEventHandler(Of Player)), GetType(PlayersManagementControl)) 



    Private Sub Hyperlink_Click(sender As Object, e As RoutedEventArgs) 
     RaiseEvent PlayerDetailRequested(Me, New RoutedPropertyChangedEventArgs(Of Player)(SelectedPlayer, SelectedPlayer)) 
    End Sub 

引發異常的調用Me.RaiseEvent(e)

這是很難找到在VB中工作的例子和C尖銳的事件處理是不同的。請幫我保持清醒!

回答

2

該問題在ExceptionValue cannot be null. Parameter name: routedEvent中解釋。 RoutedEventRoutedEventArgs的財產。你必須提供你正在籌集的RoutedEvent實例,你的情況是PlayerDetailRequestedEvent。試試這段代碼:

Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs) 
      Me.RaiseEvent(New RoutedPropertyChangedEventArgs(Of Player)(SelectedPlayer, SelectedPlayer, PlayerDetailRequestedEvent)) 
    End Sub