MDI, synchroniser des formulaires enfants et pattern Observer
Bonjour,
J'ai une application MDI avec, par exemple, des formulaires enfants dont l'un permet de rentrer un client et un autre affiche la liste des clients. Je voudrais que la liste des clients soit mise à jour chaque fois qu'un nouveau client est crée, supprimé ou modifié. J'ai pensé aux évènements et au pattern Observer, mais je voudrais pouvoir ouvrir autant de formulaires de liste et de formulaire de création/modification qu'il me plaira.
Comme solution, j'ai crée des évènements ClientUpdated, ClientDeleted et ClientCearted dans le formulaire de création/modification, ainsi qu'une classe héritant d'EventArgs avec le client concerné en propriété. Puis, j'ai déclaré un gestionnaire d'évènements dans le formulaire MDI pour l'abonner aux évènements du formulaire de création/modification. Ensuite sur ouverture de mon formulaire de liste, je l'abonne aux évènements du formulaire MDI, car dans les gestionnaires d'évènements ce dernier redéclenche l'évènement qu'il a reçu.
C'est ce que j'envisageais, mais ça me semble lourd, car il faut que je déclare les évènements deux fois, une fois dans le formulaire de création/modification et une fois dans le formulaire MDI. Et comme les clients ne sont qu'un exemple, s'il y a en plus des produits, des factures, etc., ça va rapidement faire beaucoup de déclarations en double. A moins qu'il existe un moyen de propager l'évènement directement sans le redéclarer.
Je ne sais pas quelle est la meilleur approche, car je pense à d'autres solutions mais elles ont toutes des inconvénients. Donc s'il existe une pratique éprouvée dans ce domaine, je suis preneur.
Merci pour vos lumières...