[VB.NET] Remontée d'évènements
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:
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:
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:
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.