更新到MvvmCross 5.2导航导航方法上的导航服务编译器错误

时间:2017-09-15 18:47:38

标签: navigation mvvmcross

我将MVVMCross从v5.x更新为v5.2,并且必须更新我的viewmodel导航服务代码,以更改导航服务所需的 Initialize 方法,以便将参数传递给新的准备方法。但是,现在,当尝试使用参数对象进行导航时,我面临着IMvxNavigationService的导航方法的以下编译错误:

  

错误CS1501:方法'导航'没有重载需要1个参数

就文档而言,我认为我的代码是正确的,但我错过了什么?我的代码如下......

ViewModelA

public class ViewModelA : MvxViewModel
{    
   ...

   public void DoNavigate()
   {
      var navigationService = Mvx.Resolve<IMvxNavigationService>();
      navigationService.Navigate<ViewModelB, PageNavParameters>(
         new PageNavParameters
         { 
            PageDisplayType = MyPageDisplayTypeEnum.PageDisplayType1, 
            ObjectID = "someIDstring"
         }
      );
   }

}

ViewModelB (继承自超类视图模型):

public class ViewModelB : SuperViewModel
{...}

SuperViewModel (继承自基本视图模型(后继继承自MvxViewModel),并且因为它已经有了基础,SuperViewModel实现了IMvxViewModel接口):

public class SuperViewModel : BaseViewModel, IMvxViewModel<PageNavParameters>
{

    public void Prepare(PageNavParameters pageNavParameters)
    {
        CurrentPageParameters = pageNavParameters;
    }

    public PageNavParameters CurrentPageParameters { get; set; }

    ...
}

我的导航服务代码在更新之前正常运行并更改为准备方法,但是我有点难过。似乎 Navigate 方法正在寻找要作为参数传递的ViewModelB,但是这里不能传递类型,并且我已经在调用中使用ViewModelB强烈地键入方法本身。如果这是我错过的一些小事,请提前道歉,并且非常感谢任何帮助。

0 个答案:

没有答案