Как очистить всю историю навигации, размещенную элементом управления WPF Frame

В приложении WPF элемент управления Frame используется для размещения/навигации по страницам. Я хотел бы очистить историю навигации. Существует метод NavigationService.RemoveBackEntry(), который можно использовать для очистки обратной части истории. Но как насчет истории навигации вперед? Как очистить эту часть? Какова наилучшая практика? Заранее спасибо.


person Alex Martianov    schedule 21.12.2011    source источник


Ответы (2)


Вот код, который я использовал для очистки истории навигации Frame:

 public void ClearHistory()
 {
     if (!this.Frame.CanGoBack && !this.Frame.CanGoForward)
     {
         return;
     }

     var entry = this.Frame.RemoveBackEntry();
     while (entry != null)
     {
          entry = this.Frame.RemoveBackEntry();
     }

     this.Frame.Navigate(new PageFunction<string>() { RemoveFromJournal = true });
}
person Flatliner DOA    schedule 14.05.2012
comment
Обратите внимание, что это очищает все, но тогда вам нужно куда-то перемещаться, так как это оставляет вас в никуда. - person Scott Stafford; 01.04.2015

Я не пробовал, но вы можете попробовать перейти на ту же страницу, а затем удалить заднюю страницу...

person Eyal Wurmbrand    schedule 01.05.2012