проблема со списком при навигации с помощью клавиши "назад" - PullRequest
1 голос
/ 31 августа 2011

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

ListViewPage

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    if (DetailPage.isBackkeyPressed && list != null)
    {
        DetailPage.isBackkeyPressed = false;
    }
    else
    {
        ListDetails(); //Reloading the page if list is empty
    }

    base.OnNavigatedTo(e);
}

private void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (listBox.SelectedIndex >= 0)
    {
        (Application.Current as App).obj_list = list[listBox.SelectedIndex];
        NavigationService.Navigate(new Uri("/DetailPage.xaml", UriKind.Relative)); //Navigate to detail page
    }
}

DetailPage

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
    isBackkeyPressed = true;//flag  for check if back key is pressed
    base.OnBackKeyPress(e);
}

1 Ответ

2 голосов
/ 31 августа 2011

Вам необходимо сбросить SelectedIndex, установив его на -1, например:

private void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (listBox.SelectedIndex >= 0)
    {
        (Application.Current as App).obj_list = list[listBox.SelectedIndex];
        NavigationService.Navigate(new Uri("/DetailPage.xaml", UriKind.Relative)); //Navigate to detail page

        listBox.SelectedIndex = -1;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...