MvvmCross ViewModel cache e reinicialização

Eu preciso ser capaz de interceptar o framework e executar a reinicialização quando um ViewModel estiver sendo recarregado do cache. Como o ViewModel não está sendo recriado, não posso usar os métodos Init (), MvxViewModel.InitFromBundle nem MvxViewModel.ReloadFromBundle.

Eu estou tentando depurar uma situação onde clicar no botão Voltar restaura um ViewModel com estado inconsistente. Algum tipo de MvxViewModel.OnReloading () ajudaria.

Existe uma maneira de fazer isso na v3?

EDITAR:

Suponha que eu tenha FirstPageViewModel que expõe um comando para navegar para SecondPageViewModel. Com base no que estou observando, se você clicar no botão Voltar do simulador enquanto estiver no SecondPageView, o FirstPageViewModel não será construído. Em vez disso, ele é recuperado, creio eu, de algum cache, depois vinculado à Visualização. Esse cache é possivelmente uma implementação do cache IMvxSingleViewModel.

Assim, o fluxo regular após a construção ViewModel, onde você chama Init (), InitFromBundle () e ReloadFromBundle () não se aplica neste cenário. Em outras palavras, preciso de uma maneira de reinicializar um ViewModel, independentemente de ter sido recém-construído ou de ser ressuscitado de um cache. Se o primeiro, eu posso usar um método Init (). Se o último for verdadeiro, não há como fazer isso dentro do próprio ViewModel.

Este é o problema:

Eu tenho uma instância de ICollectionService que é passada de FirstViewModel para SecondViewModel. O FirstView também contém um ListView vinculado a este CollectionService. Como o CollectionService não é fortemente tipado, posso passá-lo e usar o modelo de item apropriado para renderizar seus itens na exibição.

Antes de mostrar SecondViewModel, o FirstViewModel recupera alguns dados remotos e preenche o CollectionService. Quando SecondViewModel é mostrado, sua visualização exibe dados do CollectionService usando um modelo de item diferente. No entanto, se eu navegar de volta, como o FirstViewModel ainda está fazendo referência ao CollectionService, o FirstView renderizará os dados que foram usados ​​pelo SecondViewModel, a menos que o FirstViewModel possa ser reinicializado, limpando o CollectionService no processo. Talvez a abordagem esteja errada, mas esse é o cerne do meu problema.

Não sei se a plataforma faz a diferença, pois eu esperaria o mesmo comportamento no Windows Phone e no iOS, pois essa reinicialização ocorrerá no módulo principal. No entanto, estas são observações no Android.

TIA.

questionAnswers(2)

yourAnswerToTheQuestion