Поделиться через


Page.OnNavigatedFrom(NavigationEventArgs) Метод

Определение

Вызывается сразу после выгрузки страницы и больше не является текущим источником родительского кадра.

protected:
 virtual void OnNavigatedFrom(NavigationEventArgs ^ e) = OnNavigatedFrom;
void OnNavigatedFrom(NavigationEventArgs const& e);
protected virtual void OnNavigatedFrom(NavigationEventArgs e);
function onNavigatedFrom(e)
Protected Overridable Sub OnNavigatedFrom (e As NavigationEventArgs)

Параметры

e
NavigationEventArgs

Данные событий, которые могут быть проверены путем переопределения кода. Данные события являются репрезентативными для навигации, которая выгрузила текущую страницу.

Комментарии

OnNavigatedFrom вызывается по умолчанию при переходе между страницами в приложении. Вы можете переопределить этот метод и получить сведения о навигации из NavigationEventArgs и выполнить любые действия, необходимые вашему приложению. Однако следует избегать изменения состояния страницы, отменяя регистрацию обработчиков событий или выполняя другую очистку, особенно в приложениях, которые вызывают Frame.GetNavigationState при приостановке .

При приостановке

Помимо вызова при переходе между страницами, метод OnNavigatedFrom вызывается при приостановке приложения, если в обработчике событий Application.Suspending вызывается Frame.GetNavigationState.

Хотя кажется естественным использовать OnNavigatedFrom для отмены регистрации обработчиков событий, зарегистрированных в OnNavigatedTo, это может привести к проблемам, если приложение сохраняет свое состояние при приостановке. Сохранение состояния при приостановке обычно включает вызов Frame.GetNavigationState, который затем вызывает Page.OnNavigatedFrom на текущей странице, который сигнализирует странице о сохранении или сериализации любого состояния, которое она сохраняет при обратной навигации или восстановлении. Если приложение приостанавливается, а затем возобновляется (без завершения и повторного запуска), все обработчики событий, отменяющие регистрацию в OnNavigatedFrom, не будут повторно зарегистрированы, так как Page.OnNavigatedTo не вызывается при возобновлении.

Чтобы избежать этой проблемы, вместо этого следует использовать OnNavigatingFrom или событие Unloaded , которые вызываются только при фактической навигации, чтобы отменить регистрацию обработчиков событий и выполнить другую очистку.

Применяется к