有沒有辦法勾搭CompositionContainer的內部?例如,假設任何時候在以「View」結尾的輸出結果上調用一個導入,我可能希望將一個以「ViewModel」結尾的輸出注入到它的DataContext中。MEF和MVVM - 添加約定的方式?
有沒有辦法做到這一點?我試圖避免這樣的代碼在每一個景觀:
[Export("MainView")]
public partial class MainView : Window
{
[ImportingConstructor]
public MainView([Import("MainViewModel")] dynamic viewModel)
{
InitializeComponent();
DataContext = viewModel;
}
}
將是很好的簡化,只是這一點,並使用約定:
[Export("MainView")]
public partial class MainView : Window
{
public MainView()
{
InitializeComponent();
}
}
到目前爲止我所想到的最好方法是使用IViewLocator服務來完成這項工作,然後始終使用它來導入視圖。 – jonathanpeppers