Megosztás a következőn keresztül:


Navigációs topológiák áttekintése

Ez az áttekintés bemutatja a WPF navigációs topológiáit. Ezt követően három gyakori navigációs topológia kerül megvitatásra mintákkal.

Megjegyzés:

A témakör elolvasása előtt ismernie kell a strukturált navigáció fogalmát a WPF-ben oldalfüggvények használatával. Mindkét témakörről további információt Strukturált navigáció áttekintésecímű témakörben talál.

Ez a témakör a következő szakaszokat tartalmazza:

A WPF-ben a navigáció általában olyan oldalakból (Page) áll, amelyek hivatkozásokat (Hyperlink) tartalmaz, amelyek kattintáskor más oldalakra navigálnak. A navigált lapokat egységes erőforrás-azonosítók (URI-k) azonosítják (lásd WPF-csomag URI-jait). Tekintse meg az alábbi egyszerű példát, amely oldalakat, hivatkozásokat és egységes erőforrás-azonosítókat (URI-kat) mutat be:

<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>

Ezek a lapok egy navigációs topológiába vannak rendezve, amelynek struktúráját az határozza meg, hogyan navigálhat a lapok között. Ez az adott navigációs topológia egyszerű helyzetekben megfelelő, bár a navigáció összetettebb topológiákat igényelhet, amelyek némelyike csak akkor határozható meg, ha egy alkalmazás fut.

Ez a témakör három gyakori navigációs topológiát ismertet: rögzített lineáris, rögzített hierarchikusés dinamikusan létrehozott. Minden navigációs topológia egy olyan mintával van bemutatva, amely felhasználói felülettel rendelkezik, mint az alábbi ábrán látható:

feladatlapokat adatelemekkel és navigációs gombokkal.

Strukturált navigációs topológiák

A navigációs topológiáknak két széles típusa van:

  • Rögzített topológia: fordításkor van definiálva, és futásidőben nem változik. A rögzített topológiák akkor hasznosak, ha lineáris vagy hierarchikus sorrendben rögzített lapsorozaton haladnak végig.

  • dinamikus topológia: futásidőben van meghatározva a felhasználótól, az alkalmazástól vagy a rendszertől gyűjtött bemenet alapján. A dinamikus topológiák akkor hasznosak, ha a lapok különböző sorrendben navigálhatók.

Bár a navigációs topológiák lapok használatával hozhatók létre, a minták oldalfüggvényeket használnak, mivel további támogatást nyújtanak, amely leegyszerűsíti az adatok topológiaoldalakon keresztüli továbbításának és visszaadásának támogatását.

A rögzített lineáris topológia hasonló egy olyan varázsló szerkezetéhez, amely egy vagy több rögzített sorrendben navigált varázslóoldallal rendelkezik. Az alábbi ábra egy rögzített lineáris topológiával rendelkező varázsló magas szintű szerkezetét és folyamatát mutatja be:

rögzített lineáris topológiát ábrázoló diagram.

A rögzített lineáris topológián való navigálás tipikus viselkedése a következők:

  • Navigálás a hívó oldalról egy indítólapra, amely inicializálja a varázslót, és az első varázslóoldalra navigál. A indítólap (felhasználói felület nélküli PageFunction<T>) nem szükséges, mivel egy hívólap közvetlenül meghívhatja az első varázslólapot. A indítóoldalak használata azonban leegyszerűsítheti a varázsló inicializálását, különösen akkor, ha az inicializálás összetett.

  • A felhasználók a Vissza és a Továbbítás gombbal (vagy hivatkozásokkal) navigálhatnak a lapok között.

  • A felhasználók a naplóval navigálhatnak a lapok között.

  • A felhasználók bármelyik varázslóoldalról megszakíthatják a varázslót a Mégse gomb lenyomásával.

  • A felhasználók a befejezés gomb megnyomásával elfogadhatják a varázslót az utolsó varázslólapon.

  • Ha egy varázslót megszakítanak, a varázsló megfelelő eredményt ad, és nem ad vissza adatokat.

  • Ha egy felhasználó elfogadja a varázslót, a varázsló megfelelő eredményt ad vissza, és visszaadja az összegyűjtött adatokat.

  • Amikor a varázsló befejeződik (elfogadva vagy megszakítva), a varázslóhoz tartozó lapokat törlik a naplóból. Ez elkülöníti a varázsló minden példányát, így elkerülhetők a lehetséges adatok vagy állapotrendellenességek.

Dinamikus navigáció rögzített hierarchikus topológián keresztül

Egyes alkalmazásokban a lapok lehetővé teszik két vagy több másik lapra való navigálást az alábbi ábrán látható módon:

diagram, amely egy több oldalra navigálásra képes lapot jelenít meg.

Ez a struktúra rögzített hierarchikus topológia, és a hierarchia bejárási sorrendjét gyakran az alkalmazás vagy a felhasználó határozza meg futásidőben. Futásidőben a hierarchia minden olyan lapja, amely lehetővé teszi a két vagy több lapra való navigálást, összegyűjti azokat az adatokat, amelyek szükségesek ahhoz, hogy megállapítsa, melyik oldalra kell navigálnia. Az alábbi ábra az előző ábrán alapuló számos lehetséges navigációs sorozat egyikét szemlélteti:

lehetséges navigációs sorrendet megjelenítő diagram.

Annak ellenére, hogy a rögzített hierarchikus struktúra lapjainak navigálási sorrendje futásidőben van meghatározva, a felhasználói élmény megegyezik a rögzített lineáris topológia felhasználói élményével:

  • Navigálás a hívó oldalról egy indítólapra, amely inicializálja a varázslót, és az első varázslóoldalra navigál. A indítólap (felhasználói felület nélküli PageFunction<T>) nem szükséges, mivel egy hívólap közvetlenül meghívhatja az első varázslólapot. A indítóoldalak használata azonban leegyszerűsítheti a varázsló inicializálását, különösen akkor, ha az inicializálás összetett.

  • A felhasználók a Vissza és a Továbbítás gombbal (vagy hivatkozásokkal) navigálhatnak a lapok között.

  • A felhasználók a naplóval navigálhatnak a lapok között.

  • A felhasználók módosíthatják a navigációs sorrendet, ha visszalépnek a folyóiratban.

  • A felhasználók bármelyik varázslóoldalról megszakíthatják a varázslót a Mégse gomb lenyomásával.

  • A felhasználók a befejezés gomb megnyomásával elfogadhatják a varázslót az utolsó varázslólapon.

  • Ha egy varázslót megszakítanak, a varázsló megfelelő eredményt ad, és nem ad vissza adatokat.

  • Ha egy felhasználó elfogadja a varázslót, a varázsló megfelelő eredményt ad vissza, és visszaadja az összegyűjtött adatokat.

  • Amikor a varázsló befejeződik (elfogadva vagy megszakítva), a varázslóhoz tartozó lapokat törlik a naplóból. Ez elkülöníti a varázsló minden példányát, így elkerülhetők a lehetséges adatok vagy állapotrendellenességek.

Egyes alkalmazásokban a két vagy több lap közötti navigálás sorrendje csak futtatáskor határozható meg, függetlenül attól, hogy a felhasználó, az alkalmazás vagy a külső adatok. Az alábbi ábra egy meghatározatlan navigációs szekvenciával rendelkező oldalakat szemléltet:

Meghatározatlan navigációs szekvenciával rendelkező lapok halmaza.

A következő ábra egy navigációs sorozatot mutat be, amelyet a felhasználó választott ki futásidőben:

Futtatáskor kiválasztott navigációs sorozatot bemutató diagram.

A navigációs sorozatot dinamikusan generált topológiának nevezzük. A felhasználó számára a többi navigációs topológiához hasonlóan a felhasználói élmény ugyanaz, mint az előző topológiák esetében:

  • Navigálás a hívó oldalról egy indítólapra, amely inicializálja a varázslót, és az első varázslóoldalra navigál. A indítólap (felhasználói felület nélküli PageFunction<T>) nem szükséges, mivel egy hívólap közvetlenül meghívhatja az első varázslólapot. A indítóoldalak használata azonban leegyszerűsítheti a varázsló inicializálását, különösen akkor, ha az inicializálás összetett.

  • A felhasználók a Vissza és a Továbbítás gombbal (vagy hivatkozásokkal) navigálhatnak a lapok között.

  • A felhasználók a naplóval navigálhatnak a lapok között.

  • A felhasználók bármelyik varázslóoldalról megszakíthatják a varázslót a Mégse gomb lenyomásával.

  • A felhasználók a befejezés gomb megnyomásával elfogadhatják a varázslót az utolsó varázslólapon.

  • Ha egy varázslót megszakítanak, a varázsló megfelelő eredményt ad, és nem ad vissza adatokat.

  • Ha egy felhasználó elfogadja a varázslót, a varázsló megfelelő eredményt ad vissza, és visszaadja az összegyűjtött adatokat.

  • Amikor a varázsló befejeződik (elfogadva vagy megszakítva), a varázslóhoz tartozó lapokat törlik a naplóból. Ez elkülöníti a varázsló minden példányát, így elkerülhetők a lehetséges adatok vagy állapotrendellenességek.

Lásd még