Question

The following code produces an ArgumentNullException:

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

The Exception is thrown on the call to Me.RaiseEvent(e)

It is very hard to find working examples in VB and C sharp's event handling is different. Please help me keep my sanity!

Was it helpful?

Solution

The problem is explained in the Exception: Value cannot be null. Parameter name: routedEvent. RoutedEvent is a property of a RoutedEventArgs. You have to provide the RoutedEvent instance you are raising, in your case it is PlayerDetailRequestedEvent. Try this piece of code:

    Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
            Me.RaiseEvent(New RoutedPropertyChangedEventArgs(Of Player)(SelectedPlayer, SelectedPlayer, PlayerDetailRequestedEvent))
    End Sub
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top