Bonjour,
toujours avec mon UserControl Diary, je souhaite que l'application hôte de mon UserControl puisse être notifiée de la création d'un nouveau rendez-vous.
Dans mon UserControl, j'ai donc créé un RoutedEvent comme suit :
Puis, au moment où un nouveau rendez-vous est créé :
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Public Shared AppointmentCreatedEvent As RoutedEvent = EventManager.RegisterRoutedEvent("AppointmentCreated", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(Diary)) Public Custom Event AppointmentCreated As RoutedEventHandler AddHandler(ByVal value As RoutedEventHandler) Me.AddHandler(AppointmentCreatedEvent, value) End AddHandler RemoveHandler(ByVal value As RoutedEventHandler) Me.RemoveHandler(AppointmentCreatedEvent, value) End RemoveHandler RaiseEvent(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Me.RaiseEvent(e) End RaiseEvent End Event Private Sub RaiseAppointmentCreatedEvent() Dim NewEventArgs As New RoutedEventArgs(Diary.AppointmentCreatedEvent) MyBase.RaiseEvent(NewEventArgs) End Sub
Dans l'application de test, voici ce que j'ai écrit :
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part Me.RaiseAppointmentCreatedEvent()
Mais la MessageBox n'apparaît jamais. Qu'est-ce que je fais de travers ?...
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Public Class TestDiary Dim MyDiary As New Diary.Diary Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded Me.AddHandler(Diary.Diary.AppointmentCreatedEvent, New AppointmentCreated(AddressOf Appointment_Created)) End Sub Private Delegate Sub AppointmentCreated(ByVal sender As Object, ByVal e As RoutedEventArgs) Private Sub Appointment_Created(ByVal sender As Object, ByVal e As RoutedEventArgs) 'Pour tester : MessageBox.Show("Nouveau Rendez-vous créé !!!") End Sub End Class
Partager