У меня есть приложение, которое поддерживает плагины (MEF).
Подключаемые модули - это пользовательские элементы управления WPF, которые импортируют службы.
Пользователь может выбрать нужный плагин из главного меню приложения.
Для этого я использую следующий цикл:
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);
}
Это прекрасно работает для одного предмета. Но как только у меня появляется более 1 плагина, все пункты меню выполняют делегат последнего цикла. Или, по крайней мере, с помощью Plugin.Control последнего цикла.
Как я могу это исправить?
Спасибо за любую помощь.