UserControl内部不满足导入

时间:2013-03-31 21:37:22

标签: c# .net wpf prism mef

我正在使用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);
        }

    }

1 个答案:

答案 0 :(得分:1)

您可以在UserControl上声明导入,但必须满足这些导入。如果WPF正在创建您的UserControl(例如通过DataTemplate),那么您的导入将无法解析,因为WPF对MEF没有任何内在支持。您需要做的是通过MyControl获取CompositionContainer个实例,或者在创建UserControl后致电SatisfyImportsOnce