将Android片段类型转换为MvxFragment

时间:2016-09-30 19:16:51

标签: c# android xamarin.android mvvmcross

我正在将我们的代码库更新为最新的MVVMCross库。我遇到的错误是:

  

错误CS0030:无法转换类型Android.Support.V4.App.Fragment' to MvvmCross.Droid.FullFragging.Fragments.MvxFragment' (CS0030)(QualBoard.Mobile.Droid)

代码:

public override Fragment GetItem(int position)
{
    var frag = Fragments.ElementAt(position);
    var fragment = Fragment.Instantiate(_context,
        FragmentJavaName(frag.FragmentType));
    ((MvxFragment)fragment).DataContext = frag.ViewModel;
    return fragment;
}

问题子行是:((MvxFragment)fragment).DataContext = frag.ViewModel;

我无法将我应该在MVVMCross版本4中使用的内容放在一起,以取代之前使用的内容。

1 个答案:

答案 0 :(得分:3)

我认为问题是您正在使用错误的MvxFragment类类型。

Mvvmcross提供两种MvxFragment类类型来匹配Android中提供的类型:

  

错误CS0030:无法将类型Android.Support.V4.App.Fragment转换为   MvvmCross.Droid.FullFragging.Fragments.MvxFragment

根据您的错误,我会说您正在使用支持库中的片段,因此应该使用MvvmCross.Droid.Support.V4.MvxFragment