IRequestNavigationService未实例化

时间:2018-04-20 18:04:56

标签: wpf prism prism-6

在一个正在运行的程序中,我开始遇到以下异常: 尝试获取IRegionNavigationService类型的实例

时发生激活错误

内在的例外是 InnerException {“当前类型,CommonServiceLocator.IServiceLocator,是一个接口,无法构造。是否缺少类型映射?”} System.Exception {System.InvalidOperationException}

由于这是Prism 6平台的一部分,我不知道从哪里开始解决这个问题。

当我从存储库更新项目并且解决方案文件已损坏时,问题就开始了。我让程序运行,但是当我选择导航到另一个视图的选项时,我得到了例外。

以下是获取异常的代码:

public class MainMenuViewModel : BindableBase, IRegionManagerAware
{
    public IRegionManager RegionManager { get; set; }


    public MainMenuViewModel()
    {
        CustomerProfileCommand = new DelegateCommand(ExecuteCustomerProfileCommand);
        AdjustmentTypeCommand = new DelegateCommand(ExecuteAdjustmentTypeCommand);
        StreetProfileCommand = new DelegateCommand(ExecuteStreetProfileCommand);
        LocationMaintenanceCommand = new DelegateCommand(ExecuteLocationMaintenanceCommand);
    }

    private void ExecuteLocationMaintenanceCommand()
    {
        RegionManager.RequestNavigate(RegionNames.ContentRegion, NavigationNames.LocationMaintenance);
    }

    private void ExecuteStreetProfileCommand()
    {
        RegionManager.RequestNavigate(RegionNames.ContentRegion, NavigationNames.StreetMaintenance);
    }

    private void ExecuteAdjustmentTypeCommand()
    {
        RegionManager.RequestNavigate(RegionNames.ContentRegion, NavigationNames.AdjustmentTypeMaintenance);
    }

    private void ExecuteCustomerProfileCommand()
    {
        RegionManager.RequestNavigate(RegionNames.ContentRegion, NavigationNames.CustomerProfile);
    }

    public ICommand  CustomerProfileCommand { get; set; }
    public ICommand AdjustmentTypeCommand { get; set; }
    public ICommand StreetProfileCommand { get; set; }
    public ICommand LocationMaintenanceCommand { get; set; }
}

RegionManager由区域行为实例化,并且(使用debug to verify)实际上是实例化的。

赞赏我应该开始的任何方向。

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题。我已将CommonServiceLocator包升级到2.03。显然,Prism 6.30仅适用于1.3.0版本。在我做出这个改变之后,该计划奏效了。