ArgumentNullException при вызове RoutedEvent
Следующий код создает исключение 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
Исключение выдается при вызове Me.RaiseEvent(e)
Очень трудно найти рабочие примеры в VB, и обработка событий C sharp отличается. Пожалуйста, помогите мне сохранить мое здравомыслие!
1 ответ
Решение
Проблема объясняется в Exception
: Value cannot be null.
Parameter name: routedEvent
, RoutedEvent
является собственностью RoutedEventArgs
, Вы должны предоставить RoutedEvent
Например, вы поднимаете, в вашем случае это PlayerDetailRequestedEvent
, Попробуйте этот кусок кода:
Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
Me.RaiseEvent(New RoutedPropertyChangedEventArgs(Of Player)(SelectedPlayer, SelectedPlayer, PlayerDetailRequestedEvent))
End Sub