在UserControl中不满足Import
本文关键字:Import 不满足 UserControl | 更新日期: 2023-09-27 18:06:50
我正在使用MEF,特别是我的项目IEventAggregator在我的类之间发送信号,但是我对IEventAggregator的导入不满意,值仍然为NULL ?我错过什么了吗?能否在UserControls中导入MEF ?
public partial class MyControl : UserControl
{
public MyControl()
{
InitializeComponent();
}
[Import]
public IEventAggregator EventAggregator { get; set; }
public void SomeMethod()
{
EventAggregator.GetEvent<ErrorMessage>.Subscribe(SomeOtherMethod);
}
}
您可以在UserControl
上声明导入,但是必须有一些东西满足这些导入。如果WPF正在创建您的UserControl
(例如通过DataTemplate
),那么您的导入将无法解决,因为WPF没有任何对MEF的内在支持。您需要做的是通过CompositionContainer
获得MyControl
实例,或者在创建UserControl
后调用SatisfyImportsOnce
。