protected override void OnNavigatedFrom(NavigationEventArgs e) { ViewModel?.ViewDisappeared(); base.OnNavigatedFrom(e); var bundle = this.CreateSaveStateBundle(); SaveStateBundle(e, bundle); var translator = Mvx.IoCProvider.Resolve <IMvxWindowsViewModelRequestTranslator>(); if (e.NavigationMode == NavigationMode.Back) { var key = translator.RequestTextGetKey(_reqData); this.OnViewDestroy(key); } else { var backstack = Frame.BackStack; if (backstack.Count > 0) { var currentEntry = backstack[backstack.Count - 1]; var key = translator.RequestTextGetKey(currentEntry.Parameter.ToString()); if (key == 0) { var newParamter = translator.GetRequestTextWithKeyFor(ViewModel); var entry = new PageStackEntry(currentEntry.SourcePageType, newParamter, currentEntry.NavigationTransitionInfo); backstack.Remove(currentEntry); backstack.Add(entry); } } } }
protected override void OnDisappearing() { base.OnDisappearing(); ViewModel?.ViewDisappearing(); ViewModel?.ViewDisappeared(); }