Bonsoir à tous,
j'ai un petit soucis lors de l'utilisation d'un mediator.
J'ai une classe Plugin qui contient ceci :
Et une classe loader qui contient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public void Associate(String Identifiant, String Header, String Content) { Messenger.Instance.Register(Identifiant, delegate { Messenger.Instance.Notify(MediatorMessages.MainWindows_SetHeader, "pack://application:,,,/" + this.Namespace + ";component" + Header); Messenger.Instance.Notify(MediatorMessages.MainWindows_SetContent, "pack://application:,,,/" + this.Namespace + ";component" + Content); }); }
Lorsque le message "Add" est emis, la méthode n'est pas appelé car il semblerait que l'objet ne soit plus en vie (qu'il ai été collecté alors qu'il ne l'est pas).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class Loader : Plugin { public Loader() { this.Namespace = "Cinema.Plugin"; this.Associate("Add", "/Headers/HeaderAdd.xaml", "/Contents/Add.xaml"); } }
Maintenant, si je fait ceci à la place :
Tout fonctionne à merveille, pouvez vous me dire quel est le problème lorsque que je met le Register dans la classe mère ?? (qui est dans une autre assembly, je sais pas si ça peut jouer).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class Loader : Plugin { public Loader() { this.Namespace = "Cinema.Plugin"; Messenger.Instance.Register(Identifiant, delegate { Messenger.Instance.Notify(MediatorMessages.MainWindows_SetHeader, "pack://application:,,,/" + this.Namespace + ";component" + "/Headers/HeaderAdd.xaml"); Messenger.Instance.Notify(MediatorMessages.MainWindows_SetContent, "pack://application:,,,/" + this.Namespace + ";component" + "/Contents/Add.xaml"); }); } }
Merci d'avance.
Cordialement,
NeoKript
Partager