Silverlight 4.0 在MVVM、MEF实现中动态更改视图的ViewModel

Silverlight 4.0 在MVVM、MEF实现中动态更改视图的ViewModel,silverlight-4.0,mvvm,mef,Silverlight 4.0,Mvvm,Mef,我有一个usercontrol,我想在我的Silverlight MEF MVVM解决方案中使用它。 我希望能够将它与许多ViewModels中的一个连接起来,具体取决于我所在的模块。此控件的作用是列出给定实体的记录,以便我可以添加、编辑或删除。我意识到我将在多个位置使用此控件-更新多个查找表,因此我决定将其ViewModel设置为动态。如下所示,我正在使用Galasoft MVVM插件 if (!GalaSoft.MvvmLight.ViewModelBase.IsInDesignModeSt

我有一个usercontrol,我想在我的Silverlight MEF MVVM解决方案中使用它。 我希望能够将它与许多ViewModels中的一个连接起来,具体取决于我所在的模块。此控件的作用是列出给定实体的记录,以便我可以添加、编辑或删除。我意识到我将在多个位置使用此控件-更新多个查找表,因此我决定将其ViewModel设置为动态。如下所示,我正在使用Galasoft MVVM插件

if (!GalaSoft.MvvmLight.ViewModelBase.IsInDesignModeStatic)
            {
                // set DataContext
                DataContext = PluginCatalogService.Instance.FindSharedPlugin(ViewModelTypes.ViewModelMT, PluginType.ViewModel);
                _viewModel = (ViewModelMT)DataContext;
            }     
我的问题是如何从ViewModelMT动态更改为ViewModelCT,以允许我在同一用户控件的实例上独立显示查找表,例如维护类型和合同类型?我查看了Viewmodel定位器,但仍不确定如何完成此操作


谢谢

我不认为这是一个真正的ViewModel。这更像是一个服务问题

控件的ViewModel不会更改,但您将动态插入所需的服务以维护列表。即,MaintenanceTypeService和ContractTypesService将实现IListMaintenanceService,该服务公开项目列表以及添加、删除和编辑命令