В моем приложении у меня есть эти две функции. С тех пор, как я добавил функцию OnBackKeyPress
, утверждение if
внутри OnNavigatedFrom
верно, даже если я нажму кнопку «Назад» (может быть, потому, что e.cancel= true;
внутри OnBackKeyPress
).OnBackKeyPress не работает должным образом
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
// On back navigation there is no need to save state.
if (e.NavigationMode != System.Windows.Navigation.NavigationMode.Back)
{
StoreState(); //this should not run when i press back button
}
FilterPreviewPivot.SelectionChanged -= FilterPreviewPivot_SelectionChanged;
base.OnNavigatedFrom(e);
}
protected override void OnBackKeyPress(CancelEventArgs e)
{
while (NavigationService.CanGoBack) NavigationService.RemoveBackEntry();
NavigationService.Navigate(new Uri("/Chooser.xaml", UriKind.Relative));
// cancel the navigation
e.Cancel = true;
}
@ lhan16 Я попытался установить точку останова внутри оператора if и нажал клавишу возврата. Заявление было выполнено. Я считаю, что причина этого - скорее всего. И не удалять это вызовет проблему. так как он вернется к backstack, а также chooser.xaml в то же время – Rishabh876
Я вижу, вам захочется сохранить «e.cancel». Итак, какова ценность 'e.NavigationMode' внутри' OnNavigatedFrom' тогда? – lhan
@ lhan16 его «новый» – Rishabh876