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)
Параметры
Данные событий, которые могут быть проверены путем переопределения кода. Данные события являются репрезентативными для навигации, которая выгрузила текущую страницу.
Комментарии
OnNavigatedFrom вызывается по умолчанию при переходе между страницами в приложении. Вы можете переопределить этот метод и получить сведения о навигации из NavigationEventArgs и выполнить любые действия, необходимые вашему приложению. Однако следует избегать изменения состояния страницы, отменяя регистрацию обработчиков событий или выполняя другую очистку, особенно в приложениях, которые вызывают Frame.GetNavigationState при приостановке .
При приостановке
Помимо вызова при переходе между страницами, метод OnNavigatedFrom вызывается при приостановке приложения, если в обработчике событий Application.Suspending вызывается Frame.GetNavigationState.
Хотя кажется естественным использовать OnNavigatedFrom для отмены регистрации обработчиков событий, зарегистрированных в OnNavigatedTo, это может привести к проблемам, если приложение сохраняет свое состояние при приостановке. Сохранение состояния при приостановке обычно включает вызов Frame.GetNavigationState, который затем вызывает Page.OnNavigatedFrom на текущей странице, который сигнализирует странице о сохранении или сериализации любого состояния, которое она сохраняет при обратной навигации или восстановлении. Если приложение приостанавливается, а затем возобновляется (без завершения и повторного запуска), все обработчики событий, отменяющие регистрацию в OnNavigatedFrom, не будут повторно зарегистрированы, так как Page.OnNavigatedTo не вызывается при возобновлении.
Чтобы избежать этой проблемы, вместо этого следует использовать OnNavigatingFrom или событие Unloaded , которые вызываются только при фактической навигации, чтобы отменить регистрацию обработчиков событий и выполнить другую очистку.