C# UserControl内部不满足导入

C# UserControl内部不满足导入,c#,.net,wpf,prism,mef,C#,.net,Wpf,Prism,Mef,我在我的项目中使用MEF和IEventAggregator在我的类之间发送信号,但是我在IEventAggregator上的导入不满足,并且值仍然为空? 我错过什么了吗?您可以在UserControls内从MEF导入吗 public partial class MyControl : UserControl { public MyControl() { InitializeComponent(); }

我在我的项目中使用MEF和IEventAggregator在我的类之间发送信号,但是我在IEventAggregator上的导入不满足,并且值仍然为空? 我错过什么了吗?您可以在UserControls内从MEF导入吗

    public partial class MyControl : UserControl 
    {
        public MyControl()
        {
           InitializeComponent();  
        }

        [Import]
        public IEventAggregator EventAggregator { get; set; }

        public void SomeMethod()
        {
           EventAggregator.GetEvent<ErrorMessage>.Subscribe(SomeOtherMethod);
        }

    }
公共部分类MyControl:UserControl
{
公共MyControl()
{
初始化组件();
}
[进口]
公共IEventAggregator事件聚合器{get;set;}
公共方法()
{
EventAggregator.GetEvent.Subscribe(SomeOtherMethod);
}
}

您可以在
用户控件上声明导入,但必须满足这些导入。如果WPF正在创建您的
UserControl
(例如通过
DataTemplate
),则导入将无法解析,因为WPF对MEF没有任何内在支持。您需要做的是通过您的
合成容器
获取您的
MyControl
实例,或者在创建后调用您的
UserControl

CompositionInitializer.SatisfyImports(这);