C# UserControl内部不满足导入
我在我的项目中使用MEF和IEventAggregator在我的类之间发送信号,但是我在IEventAggregator上的导入不满足,并且值仍然为空? 我错过什么了吗?您可以在UserControls内从MEF导入吗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(); }
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(这);