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 имеет значение null. Я упускаю что-то очевидное?


person BenF114    schedule 01.05.2015    source источник
comment
Новый пример, который обрабатывает это, доступен здесь: github.com/MvvmCross/MvvmCross- AndroidSupport/дерево/мастер/   -  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