2008-09-27 6 views
0

J'ai un projet Windows Form que je viens de démarrer. Sur le formulaire j'ai une liste que je charge avec des produits. Lorsqu'un internaute double-clique sur un produit, je souhaite qu'il déclenche un événement ProductChanged. D'autres éléments de mon projet s'abonnent à cet événement et mettent à jour des éléments comme d'autres parties de l'interface graphique lorsque le produit change.Un endroit approprié pour appeler un événement?

Ma question est, où devrait être l'événement et qui devrait le soulever? L'événement doit-il figurer sur le formulaire et être déclenché par le gestionnaire de double clic de la liste? Ou devrais-je le configurer là où se trouve l'événement dans ma classe Products et la listbox appelle une méthode sur cette classe pour lui faire savoir que le produit a changé. Et puis la classe de produits augmentera l'événement? Ou devrait-il être fait d'une autre manière?

Répondre

1

Le produit modifié est un événement de l'interface utilisateur, il serait logique que ce soit soulevé sur le formulaire, et les autres éléments de l'interface utilisateur s'inscrire à l'événement.

1

La zone de liste doit déclencher l'événement puisque c'est le produit qui a été modifié.

0

Cela dépend de ce que votre événement signifie. Si l'intention est d'informer les abonnés que l'objet Product a été modifié, il appartient à la classe Product et doit être déclenché par un code à l'intérieur de cette classe. Si l'intention est de notifier qu'un autre objet Product a été sélectionné, il appartient à la vue qui gère la liste des produits (votre listbox/formulaire).

0

Le nom ProductChanged implique que l'événement est déclenché alors que le produit a été modifié. J'élèverais l'événement dans la classe de produit, car dans ce cas chaque changement déclenchera l'événement. Si vous le déclenchez dans l'interface graphique et ajoutez plus tard (par exemple) des fonctionnalités d'importation, il est probable que vous ayez oublié de déclencher l'événement après le changement.

Questions connexes