棱镜 - 具有多个ViewModel的单视图

时间:2011-12-08 19:46:47

标签: c# wpf mvvm prism

我在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

0 个答案:

没有答案