Bonsoir a tous,
Décidément j'ai quelques soucis en ce moment .
J'ai un objet DTOTacheCurrent qui ne contient que des propriétés 'Il s'agit de la propriété 'Terminé' dans mon exemple. Dans chaque accesseur SET de cette classe je lève un événement RaiseEvent afin de capturer les modifications dans une autre classe BLLTacheManager.
Je m'abonne a l’événement de cette facon dans BLLTacheManager :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
AddHandler Me._DTO.NotifyPropertyChange, AddressOf Calcul
Problème : lors de la 1ere exécution de la méthode 'Test' j'ai bien un calcul qui s’exécute (voir la méthode 'calcul') mais lors de la 2éme exécution ce sont 2 calculs qui s'exécute, 3 exécutions = 3 fois le même calcul et ainsi de suite....

Le code pour changer la propriété 'Terminé' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Private Sub Test()
       Dim Bll As New BLLTacheManager(DTOTacheCurrent)
       Bll.Item.Terminé = True
       'DTOTacheCurrent.Terminé = True ' Une autre façon d'accéder a la propriété.
End Sub
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
Public NotInheritable Class BLLTacheManager
 
    Public Sub New(ByVal DTO As DTOTache)
        _DTO = DTO
        AddHandler Me._DTO.NotifyPropertyChange, AddressOf Calcul
    End Sub
 
    Private _DTO As DTOTache
    Public Property Item() As DTOTache
        Get
            Return _DTO
        End Get
        Set(ByVal value As DTOTache)
            _DTO = value
        End Set
    End Property
 
    Private Sub Calcul(ByVal e As DataEventArgsInfos)
        Console.Beep()
        Debug.WriteLine(e.OriginalValue.ToString & " " & e.ProposedValue.ToString)
    End Sub
End Class
Merci beaucoup pour votre aide.