0

我在我的项目中使用 MEF 和特别是 IEventAggregator 在我的类之间发送信号,但是我对 IEventAggregator 的 Import 不满意并且值仍然为 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);
        }

    }
4

1 回答 1

1

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

于 2013-04-01T09:12:23.753 回答