2009-01-14 5 views
0

Existe-t-il un moyen de diffuser un événement RoutedEvent à tous mes enfants dans WPF?WPF EventRouting aux enfants

Par exemple, disons que j'ai une fenêtre qui a 4 enfants. 2 d'entre eux connaissent le 'DisplayYourself' de RoutedEvent et l'écoutent. Comment puis-je déclencher cet événement depuis la fenêtre et l'envoyer à tous les enfants?

J'ai regardé RoutingStrategy et Bubble est la mauvaise direction, Tunnel et Direct ne fonctionnent pas parce que je ne sais pas à qui les enfants que je veux envoyer cela. Je veux juste diffuser ce message et demander à qui s'en soucie.

mise à jour: J'ai déclaré les événements dans une classe statique. Le problème est que lorsque je lève l'événement de ma fenêtre, les enfants ne le voient jamais.

RoutedEventArgs args = new RoutedEventArgs(StaticEventClass.DrawEvent, this); 
this.RaiseEvent(args); 

mise à jour à nouveau .. Voici le gestionnaire de l'enfant.

public ChildClass() 
{ 
    this.AddHandler(StaticEventClass.DrawEvent, new RoutedEventHandler(ChildClass_Draw)); 
} 

Répondre

1

Je pense que le problème est que vous ne voulez pas un événement routé. Mettez simplement un ancien événement clr public sur la classe statique et attachez tout ce que vous voulez.

-1

Si vous créez un événement routé comme « MyWindow.MyRoutedEvent » vous venez de créer un gestionnaire d'événements sur vos enfants qui écoutent l'événement. Puisque le RoutedEvent est déclaré statique sur votre fenêtre, vous avez accès à partir d'autres fenêtres.

+0

Merci pour la réponse. J'ai déclaré l'événement comme statique. Je ne peux tout simplement pas amener les enfants à entendre l'événement? Il ne leur est jamais envoyé. –

+0

pouvez-vous me montrer le code eventhandler dans les enfants? – Micah

+0

J'ai mis à jour le code dans la question .. Merci encore –

Questions connexes