Bagikan melalui


Gambaran Umum Topologi Navigasi

Gambaran umum ini memberikan pengantar topologi navigasi di WPF. Tiga topologi navigasi umum, dengan sampel, kemudian dibahas.

Catatan

Sebelum membaca topik ini, Anda harus terbiasa dengan konsep navigasi terstruktur di WPF menggunakan fungsi halaman. Untuk informasi selengkapnya tentang kedua topik ini, lihat Gambaran Umum Navigasi Terstruktur.

Topik ini berisi bagian berikut:

Di WPF, navigasi biasanya terdiri dari halaman (Page) dengan hyperlink (Hyperlink) yang menavigasi ke halaman lain saat diklik. Halaman yang dinavigasi diidentifikasi oleh pengidentifikasi sumber daya seragam (URI) (lihat Paket URI di WPF). Pertimbangkan contoh sederhana berikut yang memperlihatkan halaman, hyperlink, dan pengidentifikasi sumber daya seragam (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>

Halaman-halaman ini diatur dalam topologi navigasi yang strukturnya ditentukan oleh bagaimana Anda dapat menavigasi di antara halaman. Topologi navigasi khusus ini cocok dalam skenario sederhana, meskipun navigasi dapat memerlukan topologi yang lebih kompleks, beberapa di antaranya hanya dapat didefinisikan ketika aplikasi berjalan.

Topik ini mencakup tiga topologi navigasi umum: linier tetap, hierarkis tetap, dan dihasilkan secara dinamis. Setiap topologi navigasi ditunjukkan dengan sampel yang memiliki UI seperti yang ditunjukkan pada gambar berikut:

Task pages with data items and navigation buttons.

Topologi Navigasi Terstruktur

Ada dua jenis topologi navigasi yang luas:

  • Memperbaiki Topologi: didefinisikan pada waktu kompilasi dan tidak berubah pada waktu proses. Topologi tetap berguna untuk navigasi melalui urutan halaman tetap dalam urutan linier atau hierarkis.

  • Topologi Dinamis: didefinisikan pada waktu proses berdasarkan input yang dikumpulkan dari pengguna, aplikasi, atau sistem. Topologi dinamis berguna ketika halaman dapat dinavigasi dalam urutan yang berbeda.

Meskipun dimungkinkan untuk membuat topologi navigasi menggunakan halaman, sampel menggunakan fungsi halaman karena mereka memberikan dukungan tambahan yang menyederhanakan dukungan untuk meneruskan dan mengembalikan data melalui halaman topologi.

Topologi linier tetap dianalogikan dengan struktur wizard yang memiliki satu atau beberapa halaman wizard yang dinavigasi dalam urutan tetap. Gambar berikut menunjukkan struktur tingkat tinggi dan alur wizard dengan topologi linier tetap:

Diagram that shows a fixed linear topology.

Perilaku umum untuk menavigasi melalui topologi linier tetap meliputi yang berikut ini:

  • Menavigasi dari halaman panggilan ke halaman peluncur yang menginisialisasi panduan dan menavigasi ke halaman panduan pertama. Halaman peluncur (tanpa UI PageFunction<T>) tidak diperlukan, karena halaman panggilan dapat memanggil halaman wizard pertama secara langsung. Namun, menggunakan halaman peluncur dapat menyederhanakan inisialisasi wizard, terutama jika inisialisasi rumit.

  • Pengguna dapat menavigasi antar halaman dengan menggunakan tombol Kembali dan Teruskan (atau hyperlink).

  • Pengguna dapat menavigasi antar halaman menggunakan jurnal.

  • Pengguna dapat membatalkan panduan dari halaman wizard mana pun dengan menekan tombol Batalkan.

  • Pengguna dapat menerima panduan pada halaman wizard terakhir dengan menekan tombol Selesai.

  • Jika wizard dibatalkan, wizard mengembalikan hasil yang sesuai, dan tidak mengembalikan data apa pun.

  • Jika pengguna menerima wizard, wizard mengembalikan hasil yang sesuai, dan mengembalikan data yang dikumpulkannya.

  • Ketika wizard selesai (diterima atau dibatalkan), halaman yang terdiri dari wizard dihapus dari jurnal. Ini membuat setiap instans wizard terisolasi, sehingga menghindari potensi data atau anomali status.

Navigasi Dinamis melalui Topologi Hierarkis Tetap

Di beberapa aplikasi, halaman memungkinkan navigasi ke dua halaman atau lebih, seperti yang ditunjukkan pada gambar berikut:

Diagram that shows a page that can navigate to multiple pages.

Struktur ini dikenal sebagai topologi hierarkis tetap, dan urutan di mana hierarki dilalui sering ditentukan pada waktu proses oleh aplikasi atau pengguna. Pada run time, setiap halaman dalam hierarki yang memungkinkan navigasi ke dua halaman atau lebih lainnya mengumpulkan data yang diperlukan untuk menentukan halaman mana yang akan dinavigasi. Gambar berikut mengilustrasikan salah satu dari beberapa kemungkinan urutan navigasi berdasarkan gambar sebelumnya:

Diagram that shows a possible navigation sequence.

Meskipun urutan di mana halaman dalam struktur hierarkis tetap dinavigasi ditentukan pada waktu proses, pengalaman pengguna sama dengan pengalaman pengguna untuk topologi linier tetap:

  • Menavigasi dari halaman panggilan ke halaman peluncur yang menginisialisasi panduan dan menavigasi ke halaman panduan pertama. Halaman peluncur (tanpa UI PageFunction<T>) tidak diperlukan, karena halaman panggilan dapat memanggil halaman wizard pertama secara langsung. Namun, menggunakan halaman peluncur dapat menyederhanakan inisialisasi wizard, terutama jika inisialisasi rumit.

  • Pengguna dapat menavigasi antar halaman dengan menggunakan tombol Kembali dan Teruskan (atau hyperlink).

  • Pengguna dapat menavigasi antar halaman menggunakan jurnal.

  • Pengguna dapat mengubah urutan navigasi jika mereka menavigasi kembali melalui jurnal.

  • Pengguna dapat membatalkan panduan dari halaman wizard mana pun dengan menekan tombol Batalkan.

  • Pengguna dapat menerima panduan pada halaman wizard terakhir dengan menekan tombol Selesai.

  • Jika wizard dibatalkan, wizard mengembalikan hasil yang sesuai, dan tidak mengembalikan data apa pun.

  • Jika pengguna menerima wizard, wizard mengembalikan hasil yang sesuai, dan mengembalikan data yang dikumpulkannya.

  • Ketika wizard selesai (diterima atau dibatalkan), halaman yang terdiri dari wizard dihapus dari jurnal. Ini membuat setiap instans wizard terisolasi, sehingga menghindari potensi data atau anomali status.

Dalam beberapa aplikasi, urutan di mana dua halaman atau lebih dinavigasi hanya dapat ditentukan pada waktu proses, baik oleh pengguna, aplikasi, atau data eksternal. Gambar berikut mengilustrasikan sekumpulan halaman dengan urutan navigasi yang tidak ditentukan:

A set of pages with an undetermined navigation sequence.

Gambar berikutnya mengilustrasikan urutan navigasi yang dipilih oleh pengguna pada waktu proses:

Diagram that shows a navigation sequence chosen at run time.

Urutan navigasi dikenal sebagai topologi yang dihasilkan secara dinamis. Untuk pengguna, seperti halnya topologi navigasi lainnya, pengalaman pengguna sama seperti untuk topologi sebelumnya:

  • Menavigasi dari halaman panggilan ke halaman peluncur yang menginisialisasi panduan dan menavigasi ke halaman panduan pertama. Halaman peluncur (tanpa UI PageFunction<T>) tidak diperlukan, karena halaman panggilan dapat memanggil halaman wizard pertama secara langsung. Namun, menggunakan halaman peluncur dapat menyederhanakan inisialisasi wizard, terutama jika inisialisasi rumit.

  • Pengguna dapat menavigasi antar halaman dengan menggunakan tombol Kembali dan Teruskan (atau hyperlink).

  • Pengguna dapat menavigasi antar halaman menggunakan jurnal.

  • Pengguna dapat membatalkan panduan dari halaman wizard mana pun dengan menekan tombol Batalkan.

  • Pengguna dapat menerima panduan pada halaman wizard terakhir dengan menekan tombol Selesai.

  • Jika wizard dibatalkan, wizard mengembalikan hasil yang sesuai, dan tidak mengembalikan data apa pun.

  • Jika pengguna menerima wizard, wizard mengembalikan hasil yang sesuai, dan mengembalikan data yang dikumpulkannya.

  • Ketika wizard selesai (diterima atau dibatalkan), halaman yang terdiri dari wizard dihapus dari jurnal. Ini membuat setiap instans wizard terisolasi, sehingga menghindari potensi data atau anomali status.

Baca juga