Je n'arrive pas à récupérer les events générés par des Classes enfants.

Un exemple simplifié que j'espère assez clair:

Jai un Formulaire FormAffichage, une Classe Metier SourceClass et une classe Calcul CalculClass

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Public Class FormClass
  Public WithEvents Source As new SourceClass
End Class
 
Public Class SourceClass
  Public WithEvents Calcul As New CalculClass
End Class
 
Public Class CalculClass
  Public Event CalculProgressEvent
End Class
Par exemple Calcul Class déclenche l'évènement CalculProgressEvent chaque fois qu'un traitement est effectué.
je voudrais récupérer l'event dans le FormClass pour afficher une progression mais je n'y parviens pas.
Le formulaire ne veut pas entendre parler de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Source.Calcul.CalculProgressEvent
Si je zappe la CalculClass et que l'event est déclenché par SourceClass tout fonctionne trés bien.
Mais je n'arrive pas à récupérer l'évent dans la Class Source ce qui permettrait de générer un event en cascade.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Public SourceClass
  Public Sub Calcul_Event() Handles Calcul.ProgressCalculEvent
    RaiseEvent me.CalculProgressEvent
  End Sub
End Class
Est compilé sans problème mais ne se déclenche jamais.
Il est possible de definir une Property Compteur dans la SourceClass qui déclenche un event Dans le formulaire, mais la Classe CalculClass n'a aucune visibilité sur la Classe SourceClass et ne voit pas cette propriétée...

Y-at-il un moyen de résoudre ce problème qui consiste à récupérer au niveau de la classe Parent des events déclenchés par des classes enfants ?
Faut il mettre un délégué dans la classe Parent qui déclenche l'évènement et faire pointer le déclencheur d'évènement de la classe enfant vers ce délégué ?
J'ai le meme problème pour le DataBinding avec des Classes enfants: je ne parviens pas à répercuter les modifications de Classes enfants dans les formulaires Liés.