Bonjour à tous
Je m'arrache les cheveux (et il ne m'en reste pas beaucoup) sur un problème de gestion d’événement dans une classe.
Ci-dessous le code simplifié de ma classe Data

Code : 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
20
21
22
23
24
25
26
27
28
29
30
31
 public Class Data
    Private _id As Integer
    Private _titre As String
 
    Public Event ChangedData()
 
    ' Id
    Property Id As Integer
        Get
            Return _id
        End Get
        Set(value As Integer)
            _id = value
            RaiseEvent ChangedData()
        End Set
    End Property
 
    ' Titre
    Property Titre As String
        Get
            Return _titre
        End Get
        Set(value As String)
            If (value.Length > 10) Then
                _titre = value.Substring(0, 10)
            Else
                _titre = value
            End If
            RaiseEvent ChangedData()
        End Set
    End Property
Cette classe est instanciée en tant que membre dans une nouvelle classe Element de type UserControl
Ci-dessous le code la classe Element

Code : 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
20
21
22
23
24
25
26
27
28
29
 
Public Class Element
 
    Private _data As New Data
 
    ' Data
    Property Data As Data
        Get
            Return _data
        End Get
        Set(value As Data)
            _data = value
        End Set
    End Property
 
    ' Constructeur
    Public Sub New()
        InitializeComponent()
        Me.Width = 110
        Me.Height = 110
        AddHandler Data.ChangedData, AddressOf OnClickPouf
    End Sub
 
    ' OnClickPouf
    Private Sub OnClickPouf()
        MsgBox("Bingo")
    End Sub
 
End Class
Sur une Form je met un controle de type Element et dans le click du bouton je modifie la propriété "Titre" de Data par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Element1.Data.Titre = "Toto"
Et la snif snif pas de trap sur OnClickPouf()

Par contre si je mets dans la classe Data un controle quelconque (type label ou autre) et que je crée dans Element un AddHandler sur un évenement de ce controle, la par contre je "trap" bien sur OnClickPouf() lors du déclenchement de l'évènement.

Je dois certainement passer à côté de quelque chose.

Merci aux savants pour votre aide

Philippe