0

У меня есть домашняя страница или целевая страница в моем приложении для телефона на телефоне C#, где пользователь вводит данные для входа, а при успешном входе в систему пользователь перенаправляется на страницу2. Здесь пользователь увидит список с несколькими элементами. После выбора элемента из этого списка открывается новая страница с именем «Threadx» (где x - каждая страница, открывающаяся при нажатии на элемент x в списке)Как перейти на предыдущую страницу в Windows Phone 8, когда нажата кнопка «Назад»

Пока пользователь находится на этой странице темы «Threadx», он может получать уведомления о тостах, и поток обновляется с новыми ответами или ответами на этот поток.

Но когда пользователь нажимает кнопку «Назад», страница «ThreadX» не закрывается, и вместо этого она переходит в прежнее состояние, где у нее меньше сообщений, и так далее, пока приложение не будет закрыто.

protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     base.OnNavigatedTo(e); 
     if (e.NavigationMode == NavigationMode.Back) 
     { 
      return; 
     } 
    } 

Я хотел бы знать, если эта страница "ThreadX" может быть закрыт при нажатии кнопки назад, не затрагивая другие "ThreadX + 1", "ThreadX + 2" ... "ThreadX + N" страниц.

Любая помощь была бы действительно оценена.

+0

Как правило, кнопка обратной связи не работает, и, хотя вы, возможно, сможете делать то, что хотите, ваше приложение может не выполнить проверку. –

+0

@Peter Когда я нажимаю кнопку «Назад», страница «ThreadX» сохраняется до тех пор, пока страница не вернется к исходному состоянию сообщений. Если бы я получил 3 сообщения после открытия страницы «ThreadX», я должен был нажать кнопку «назад» 3 раза на одной странице. Можно ли этого избежать? – krrishna

+0

Обычно его избегают, не поднимая «страницу» (например, нечто большее как диалог вместо URL-адреса), так что * назад * возвращается к последней странице и пропускает нестраничный интерфейс в диалоговом окне ... –

ответ

5

Обычно окна хранят страницы в стеке, когда вы покидаете страницу и переходите на другую страницу. Если вы хотите перейти на предыдущую страницу при нажатии кнопки Назад можно сделать следующие вещи:

Добавить следующую строку в OnNavigatedTo метод:

Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed; 

Добавить определение для HardwareButtons_BackPressed метода:

private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) 
    { 
     e.Handled = true; 
     if (Frame.CanGoBack) 
      Frame.GoBack(); 
    } 

Не забудьте добавить Windows.Phone.UI.Input в список пространства имен.

-1

Другой способ, с помощью которого я работал, состоял в том, чтобы использовать приведенный ниже код в методе onnavigateto на моей странице «thread», и это сработало для меня. Дайте мне знать, есть ли элегантный способ сделать это или лучше сделать это.

if (e.NavigationMode == NavigationMode.Back) 
     { 
      NavigationService.Navigate(new Uri("/View/Page2.xaml", UriKind.Relative)); 
     } 
+2

Это кажется неправильным ... Что происходит, когда вы нажимаете кнопку «Назад» на странице 2, когда вы переходите на страницу 2 этим кодом? Кроме того, когда пользователь получает обновления на любой странице «ThreadX», что именно вы делаете? Переходите ли вы к новой странице «ThreadX»? – kshitijgandhi

+0

Когда я нажимаю кнопку «Назад» на странице 2, я возвращаюсь на главную страницу, где происходит логин. – krrishna

+0

Нельзя использовать для перехода назад с помощью кнопки «Назад». –

Смежные вопросы