Поделиться через


Практическое руководство. Переход вперед или назад по журналу навигации

В этом примере показано, как перейти вперед или назад к записям в журнале навигации.

Пример

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

Прежде чем переходить вперед на одну запись, необходимо убедиться, что в истории навигации вперед имеются записи. Для этого нужно проверить свойство CanGoForward. Чтобы перейти вперед одну запись, вызовите метод GoForward. Это продемонстрировано в следующем примере.

void navigateForwardButton_Click(object sender, RoutedEventArgs e)
{
    // Navigate forward one page from this page, if there is an entry
    // in forward navigation history
    if (this.NavigationService.CanGoForward)
    {
        this.NavigationService.GoForward();
    }
    else
    {
        MessageBox.Show("No entries in forward navigation history.");
    }
}
Private Sub navigateForwardButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
    ' Navigate forward one page from this page, if there is an entry
    ' in forward navigation history
    If Me.NavigationService.CanGoForward Then
        Me.NavigationService.GoForward()
    Else
        MessageBox.Show("No entries in forward navigation history.")
    End If
End Sub

Прежде чем переходить назад на одну запись, необходимо убедиться, что в истории навигации назад имеются записи. Для этого нужно проверить свойство CanGoBack. Чтобы вернуться на одну запись назад, нужно вызвать метод GoBack. Это продемонстрировано в следующем примере.

void navigateBackButton_Click(object sender, RoutedEventArgs e)
{
    // Navigate back one page from this page, if there is an entry
    // in back navigation history
    if (this.NavigationService.CanGoBack)
    {
        this.NavigationService.GoBack();
    }
    else
    {
        MessageBox.Show("No entries in back navigation history.");
    }
}
Private Sub navigateBackButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
    ' Navigate back one page from this page, if there is an entry
    ' in back navigation history
    If Me.NavigationService.CanGoBack Then
        Me.NavigationService.GoBack()
    Else
        MessageBox.Show("No entries in back navigation history.")
    End If
End Sub

Методы CanGoForward, GoForward, CanGoBack и GoBack реализуются NavigationWindow, Frame и NavigationService.

Примечание.

Если вы вызываете метод GoForward и в истории навигации вперед нет записей или если вы вызываете метод GoBack и в истории навигации назад нет записей, создается исключение InvalidOperationException.