我正在尝试在我的应用程序中的一个新项目中使用 MEF。事情在主应用程序级别工作,但在这个单独的项目中,其程序集包含在主应用程序中(它的用户控件)我想知道一些事情......如果我有一个用户控件,并且其中我有以下内容:
<UserControl.Resources>
<DataTemplate DataType="{x:Type vm:MyViewModel}" >
<local:MyView />
</DataTemplate>
</UserControl.Resources>
<vm:MyViewModel />
在我的 MyViewModel 中,我导出了一些东西,并且程序集似乎组合得很好(我使用 CompositionInfoTextFormatter 来检查这一点)。但是我的虚拟机没有被 MEF 实例化,或者至少构造函数永远不会被调用。当它被调用时,它似乎来自 WPF 框架,而不是 MEF。
什么是正确的方法 A)在 xaml 中,将我的 VM 与其视图与 MEF 相关联(如果与上面不同)和 B)我如何实例化我的 VM 以便 MEF 控制它,因此导出和导入工作?
目前他们没有,这就是为什么我试图理解这一切:)