MvxFragment ViewModels

Опитвам се да накарам фрагментите да работят, когато използвам MvvmCross 3.5.

Имам следния фрагмент:

public class MainView
  : MvxFragment<MenuView>
{

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    var ignored = base.OnCreateView(inflater, container, savedInstanceState);
    this.EnsureBindingContextIsSet(savedInstanceState);
    var view = this.BindingInflate(Resource.Layout.MainView, null);

    return view;
 }
}

Използвам следния код за ръчно инициализиране на ViewModel:

var loaderService = Mvx.Resolve<IMvxViewModelLoader>();
ViewModel = (T)loaderService.LoadViewModel(
           new MvxViewModelRequest(typeof(T), null, null, null), null);

Това работи добре, освен когато фрагментът се възобнови, в който момент приложението се взривява с NullReferenceException.

Сега се опитвам да използвам MvxCachingFragmentActivity, за да се справя с жизнения цикъл на фрагментите, но не мога да намеря документация за него.

Регистрирал съм фрагментите:

RegisterFragment<MainView, MainViewModel>(typeof(MainView).Name, bundle);

и след това показва едно:

ShowFragment(typeof(MainView).Name, Resource.Id.content_frame, bundle);

Фрагментът се зарежда, но ViewModel е нула. Пропускам ли нещо очевидно?


person BenF114    schedule 01.05.2015    source източник
comment
Нов пример, който се справя с това, е достъпен тук: github.com/MvvmCross/MvvmCross- AndroidSupport/tree/master/   -  person Martijn00    schedule 22.07.2015
comment
@Martijn00 Връзката не съществува :(   -  person BrutalDev    schedule 19.12.2016


Отговори (1)


[MvxOwnedViewModelFragment] 

на фрагмента е необходим от 3.5.1

person BenF114    schedule 02.05.2015