使用MEF,我们有一个WPF应用程序,插件为UserControl
控件。
主窗口包含TabControl
,每个选项卡代表一个单独的插件。
// IPlugin : UserControl
var myPlugin = new IPlugin();
var mainTabControl = new TabControl();
var myTabItem = new TabItem();
myTabItem.Content = myPlugin;
mainTabControl.Items.Add(myTabItem);
问题是我确实有一些我想从插件方面限制的操作,比如关闭主窗口。 例如:
[Export(typeof(IPlugin))]
public partial class UserControl1 : IPlugin, UserControl {
// ...
var mainWindow = Window.GetWindow( this );
mainWindow.Close();
}