2015-08-25 3 views
1

В моем универсальном приложении я хочу использовать Frame для навигации по моему приложению. Я также имею хлебную крошку, согласно проектам. Теперь я не знаю, как обращаться с вещами, когда пользователь хочет вернуться к нескольким страницам.Как вернуть несколько страниц?

Мои элементы пачки - это простые строки, которые я показываю с помощью XAMLListView. Я нахожу указатель пачки, на который пользователь щелкнул, и я стараюсь вернуться столько раз.

Я попытался с помощью для цикла:

private void Breadcrumb_Item_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    var breadcrumb = ((sender as Grid).DataContext as string); 

    for(int i = 1; i < Breadcrumbs.Count - Breadcrumbs.indexOf(breadcrumb); i++) 
    { 
     frame.GoBack(); 
    } 
} 

Но frame.GoBack() не всегда работает, я предполагаю, потому что это происходит слишком быстро после GoBack() вызова ранее. Я не хочу использовать метод сна, потому что он должен быть мгновенным.

Что можно сделать, чтобы вернуться к нескольким страницам?

ответ

1

Я предложил бы использовать frame.BackStack.RemoveAt(frame.BackStackDepth-1)

Таким образом, вы будете удалять записи из стека без фактического навигации. Используйте цикл, чтобы решить, когда вы должны прекратить удаление, а затем выполнить окончательный frame.GoBack()

+0

Так что я удаляю до тех пор, пока последний из них не окажется впереди того, где я хочу быть, а затем создаю 'frame.GoBack() 'поп последний? – vrwim

+0

Да, это идея. – Corcus

+0

@vrwim Это сработало? Если нет, возможно, мы сможем понять, что пошло не так, и найти другое решение. – Corcus

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