J'ai une application qui est capable de plugins (MEF). Les plugins sont des UserControls WPF qui importent des services.Problème avec l'affectation de délégués dans la boucle for
L'utilisateur peut sélectionner le plugin voulu dans le menu principal de l'application.
Pour ce faire, j'utiliser la boucle suivante:
foreach(IToolPlugin Plugin in ToolPlugins)
{
Plugin.Init();
MenuItem PluginMenuItem = Plugin.MenuItem; //New MenuItem but with Header set.
PluginMenuItem.Click += new RoutedEventHandler(delegate(object o, RoutedEventArgs e) { DoSomething(Plugin.Control);});
PluginsMenu.Items.add(PluginMenuItem);
}
Cela fonctionne très bien pour un seul élément. Mais dès que j'ai plus de 1 plugin, tous les menuitems exécutent le délégué de la dernière boucle. Ou au moins avec le Plugin.Control de la dernière boucle.
Comment puis-je résoudre ce problème?
Merci pour toute aide.
J'adore voir les nombreux variations de cette question. – ChaosPandion
@Chaos - dans ce cas, vous devriez voter pour fermer;) – ChrisF