Udostępnij przez


Topologie nawigacji — omówienie

To omówienie zawiera wprowadzenie do topologii nawigacji w WPF. Trzy typowe topologie nawigacji, z przykładami, są następnie omawiane.

Uwaga / Notatka

Przed przeczytaniem tego tematu należy zapoznać się z koncepcją nawigacji strukturalnej w WPF przy użyciu funkcji stron. Aby uzyskać więcej informacji na temat obu tych tematów, zobacz Omówienie nawigacji ustrukturyzowanej.

Ten temat zawiera następujące sekcje:

W WPF nawigacja zazwyczaj składa się ze stron (Page) z hiperlinkami (Hyperlink), które przechodzą do innych stron po kliknięciu. Strony, na które się przechodzi, są identyfikowane przez jednolite identyfikatory zasobów (URI) (zobacz URI pakietów w WPF w). Rozważmy następujący prosty przykład pokazujący strony, hiperlinki i jednolite identyfikatory zasobów (URI):

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page1">
  <Hyperlink NavigateUri="Page2.xaml">Navigate to Page2</Hyperlink>
</Page>
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page2">
  <Hyperlink NavigateUri="Page1.xaml">Navigate to Page1</Hyperlink>
</Page>

Te strony są rozmieszczane w topologii nawigacji , których struktura jest określana przez sposób nawigacji między stronami. Ta konkretna topologia nawigacji jest odpowiednia w prostych scenariuszach, chociaż nawigacja może wymagać bardziej złożonych topologii, z których niektóre można zdefiniować tylko w przypadku uruchamiania aplikacji.

W tym temacie opisano trzy typowe topologie nawigacyjne: liniowa stała , hierarchiczna stała oraz dynamicznie generowana . Każda topologia nawigacji jest pokazana przy użyciu przykładu, który ma interfejs użytkownika podobny do przedstawionego na poniższej ilustracji:

strony zadania z elementami danych i przyciskami nawigacji.

Topologie nawigacji ustrukturyzowanej

Istnieją dwa szerokie typy topologii nawigacji:

  • Stała topologia: zdefiniowana w czasie kompilacji i nie zmienia się w czasie wykonywania. Stałe topologie są przydatne do nawigacji przez stałą sekwencję stron w kolejności liniowej lub hierarchicznej.

  • Dynamicznej Topologii: zdefiniowane w czasie wykonywania na podstawie danych wejściowych zebranych od użytkownika, aplikacji lub systemu. Dynamiczne topologie są przydatne, gdy można nawigować po stronach w różnych sekwencjach.

Chociaż istnieje możliwość tworzenia topologii nawigacji przy użyciu stron, przykłady używają funkcji strony, ponieważ zapewniają dodatkową obsługę, która upraszcza obsługę przekazywania i zwracania danych za pośrednictwem stron topologii.

Stała topologia liniowa jest analogiczna do struktury kreatora, który ma co najmniej jedną stronę kreatora, która jest nawigowana w stałej sekwencji. Na poniższej ilustracji przedstawiono strukturę wysokiego poziomu i przepływ kreatora ze stałą topologią liniową:

Diagram przedstawiający stałą topologię liniową.

Typowe zachowania nawigowania po stałej topologii liniowej obejmują następujące elementy:

  • Przejście ze strony wywołującej do strony uruchamiania, która inicjuje kreatora i przechodzi do pierwszej strony kreatora. Strona uruchamiania (bez interfejsu użytkownika PageFunction<T>) nie jest wymagana, ponieważ strona wywołująca może bezpośrednio wywołać pierwszą stronę kreatora. Jednak użycie strony startowej może uprościć inicjalizację kreatora, szczególnie jeśli inicjalizacja jest złożona.

  • Użytkownicy mogą nawigować między stronami przy użyciu przycisków Wstecz i Prześlij dalej (lub hiperlinków).

  • Użytkownicy mogą nawigować między stronami przy użyciu dziennika.

  • Użytkownicy mogą anulować kreatora z dowolnej strony kreatora, naciskając przycisk Anuluj.

  • Użytkownicy mogą zaakceptować kreatora na ostatniej stronie kreatora, naciskając przycisk Zakończ.

  • Jeśli kreator zostanie anulowany, kreator zwróci odpowiedni wynik i nie zwraca żadnych danych.

  • Jeśli użytkownik zaakceptuje kreatora, kreator zwróci odpowiedni wynik i zwróci zebrane dane.

  • Gdy kreator zostanie ukończony (zaakceptowany lub anulowany), strony, z których składa się kreator, zostaną usunięte z dziennika. Dzięki temu każde wystąpienie kreatora pozostaje odizolowane, co pozwala uniknąć potencjalnych anomalii danych lub ich stanu.

Nawigacja dynamiczna przez stałą topologię hierarchiczną

W niektórych aplikacjach strony umożliwiają nawigację do co najmniej dwóch innych stron, jak pokazano na poniższej ilustracji:

Diagram przedstawiający stronę, która może przejść do wielu stron.

Ta struktura jest znana jako stała topologia hierarchiczna, a sekwencja przechodzenia hierarchii jest często określana w czasie wykonywania przez aplikację lub użytkownika. W czasie wykonywania każda strona w hierarchii, która umożliwia nawigację do co najmniej dwóch innych stron, zbiera dane wymagane do określenia, do której strony należy przejść. Na poniższej ilustracji przedstawiono jedną z kilku możliwych sekwencji nawigacji na podstawie poprzedniej ilustracji:

Diagram przedstawiający możliwą sekwencję nawigacji.

Mimo że sekwencja, w której nawigowane są strony w stałej strukturze hierarchicznej, jest określana w czasie wykonywania, doświadczenie użytkownika jest takie samo jak w przypadku stałej topologii liniowej.

  • Przejście ze strony wywołującej do strony uruchamiania, która inicjuje kreatora i przechodzi do pierwszej strony kreatora. Strona uruchamiania (bez interfejsu użytkownika PageFunction<T>) nie jest wymagana, ponieważ strona wywołująca może bezpośrednio wywołać pierwszą stronę kreatora. Jednak użycie strony startowej może uprościć inicjalizację kreatora, szczególnie jeśli inicjalizacja jest złożona.

  • Użytkownicy mogą nawigować między stronami przy użyciu przycisków Wstecz i Prześlij dalej (lub hiperlinków).

  • Użytkownicy mogą nawigować między stronami przy użyciu dziennika.

  • Użytkownicy mogą zmieniać sekwencję nawigacji, jeśli przechodzą z powrotem przez dziennik.

  • Użytkownicy mogą anulować kreatora z dowolnej strony kreatora, naciskając przycisk Anuluj.

  • Użytkownicy mogą zaakceptować kreatora na ostatniej stronie kreatora, naciskając przycisk Zakończ.

  • Jeśli kreator zostanie anulowany, kreator zwróci odpowiedni wynik i nie zwraca żadnych danych.

  • Jeśli użytkownik zaakceptuje kreatora, kreator zwróci odpowiedni wynik i zwróci zebrane dane.

  • Gdy kreator zostanie ukończony (zaakceptowany lub anulowany), strony, z których składa się kreator, zostaną usunięte z dziennika. Dzięki temu każde wystąpienie kreatora pozostaje odizolowane, co pozwala uniknąć potencjalnych anomalii danych lub ich stanu.

W niektórych aplikacjach sekwencja, w której są nawigowane co najmniej dwie strony, można określić tylko w czasie wykonywania, zarówno przez użytkownika, aplikację, jak i dane zewnętrzne. Na poniższej ilustracji przedstawiono zestaw stron z nieokreśloną sekwencją nawigacji:

Zestaw stron z nieokreśloną sekwencją nawigacji.

Na następnej ilustracji przedstawiono sekwencję nawigacji wybraną przez użytkownika w czasie wykonywania:

Diagram przedstawiający sekwencję nawigacji wybraną podczas działania programu.

Sekwencja nawigacji jest nazywana dynamicznie generowaną topologią. W przypadku użytkownika, podobnie jak w przypadku innych topologii nawigacji, środowisko użytkownika jest takie samo jak w przypadku poprzednich topologii:

  • Przejście ze strony wywołującej do strony uruchamiania, która inicjuje kreatora i przechodzi do pierwszej strony kreatora. Strona uruchamiania (bez interfejsu użytkownika PageFunction<T>) nie jest wymagana, ponieważ strona wywołująca może bezpośrednio wywołać pierwszą stronę kreatora. Jednak użycie strony startowej może uprościć inicjalizację kreatora, szczególnie jeśli inicjalizacja jest złożona.

  • Użytkownicy mogą nawigować między stronami przy użyciu przycisków Wstecz i Prześlij dalej (lub hiperlinków).

  • Użytkownicy mogą nawigować między stronami przy użyciu dziennika.

  • Użytkownicy mogą anulować kreatora z dowolnej strony kreatora, naciskając przycisk Anuluj.

  • Użytkownicy mogą zaakceptować kreatora na ostatniej stronie kreatora, naciskając przycisk Zakończ.

  • Jeśli kreator zostanie anulowany, kreator zwróci odpowiedni wynik i nie zwraca żadnych danych.

  • Jeśli użytkownik zaakceptuje kreatora, kreator zwróci odpowiedni wynik i zwróci zebrane dane.

  • Gdy kreator zostanie ukończony (zaakceptowany lub anulowany), strony, z których składa się kreator, zostaną usunięte z dziennika. Dzięki temu każde wystąpienie kreatora pozostaje odizolowane, co pozwala uniknąć potencjalnych anomalii danych lub ich stanu.

Zobacz także