MvvmCross ViewModel кэширование и повторная инициализация

Мне нужно иметь возможность перехватить структуру и выполнить повторную инициализацию, когда ViewModel перезагружается из кэша. Поскольку ViewModel не воссоздается, я не могу ни использовать методы Init (), MvxViewModel.InitFromBundle, ни MvxViewModel.ReloadFromBundle.

Я пытаюсь отладить ситуацию, когда нажатие на кнопку «Назад» восстанавливает ViewModel с несовместимым состоянием. Какой-то MvxViewModel.OnReloading () поможет.

Есть ли способ сделать это в v3?

РЕДАКТИРОВАТЬ:

Предположим, у меня есть FirstPageViewModel, которая предоставляет команду для перехода к SecondPageViewModel. Исходя из того, что я наблюдаю, если вы нажмете на кнопку «Назад» симулятора, когда на SecondPageView, FirstPageViewModel не создается. Я полагаю, что вместо этого он извлекается из некоторого кэша, а затем связывается с представлением. Этот кеш, возможно, является реализацией кеша IMvxSingleViewModel.

Таким образом, обычный поток после построения ViewModel, где вы вызываете Init (), InitFromBundle () и ReloadFromBundle (), не применяется в этом сценарии. Другими словами, мне нужен способ для повторной инициализации ViewModel независимо от того, был ли он только что заново сконструирован или воскрес из кеша. Если первое, я могу использовать метод Init (). Если последнее верно, нет способа сделать это в самой ViewModel.

Это проблема:

У меня есть экземпляр ICollectionService, который передается из FirstViewModel в SecondViewModel. FirstView также содержит ListView, связанный с этим CollectionService. Поскольку CollectionService не является строго типизированным, я могу передать его и использовать соответствующий шаблон элемента для отображения его элементов в представлении.

Перед отображением SecondViewModel FirstViewModel извлекает некоторые удаленные данные и заполняет CollectionService. Когда отображается SecondViewModel, его представление отображает данные из CollectionService с использованием другого шаблона элемента. Однако, если я вернусь назад, поскольку FirstViewModel все еще ссылается на CollectionService, FirstView будет отображать данные, которые использовались SecondViewModel, если FirstViewModel не может быть повторно инициализирован, очищая CollectionService в процессе. Возможно, неправильный подход, но в этом суть моей проблемы.

Я не знаю, если платформа будет иметь значение, так как я ожидал бы такое же поведение на Windows Phone и iOS, как эта повторная инициализация будет происходить в модуле Core. Тем не менее, это наблюдения на Android.

ТИА.

Ответы на вопрос(2)

Ваш ответ на вопрос