我在wpf项目中使用Prism 4.0。我[导出]我的ViewModel与合同名称并将它们导入我的视图。
最近,我发现4个视图相同但有2个不同的ViewModel都具有相同的接口。唯一的区别是他们的出口合同名称。有没有什么方法可以重构为1 View,2个导出使用Import语句根据合同名称选择ViewModel?
[Export("ContractName1"), typeof(IView))]
[Export("ContractName2"), typeof(IView))]
public partial class MyView: UserControl : IView {
[Import]
IViewModel ViewModel
{
get { return this.DataContext as IViewModel; }
set { this.DataContext = value; }
}
}
和我的观点模型:
[Export("ContractName1"), typeof(IViewModel))]
public class MyViewModel1 : IViewModel
[Export("ContractName2"), typeof(IViewModel))]
public class MyViewModel2 : IViewModel