Ćwiczenie: używanie stron z kartami ze stronami nawigacji
W aplikacji astronomicznej zostanie wyświetlona prośba o dodanie stron, które umożliwiają użytkownikowi wybieranie różnych ciał astronomicznych i wyświetlanie ich szczegółów. Może istnieć dowolna liczba ciał, więc utworzenie karty dla każdego ciała nie jest wykonalne. W związku z tym, aby umożliwić użytkownikowi wybranie treści do wyświetlenia, należy dodać kolejną stronę zawierającą listę. Użytkownik może wybrać treść z tej listy, a aplikacja wyświetli szczegóły dotyczące tej treści na nowej stronie. Strona listy działa jako strona główna na potrzeby nawigacji stosu. Stronę listy można dodać jako kartę w istniejącym interfejsie użytkownika.
Otwieranie rozwiązania startowego
Przejdź do folderu exercise3 w repozytorium sklonowanym na początku tego modułu, a następnie przejdź do folderu startowego.
Użyj programu Visual Studio, aby otworzyć rozwiązanie Astronomy.sln lub folder w programie Visual Studio Code.
Uwaga
To rozwiązanie zawiera strony i style, które nie są w wersji aplikacji użytej w poprzednich ćwiczeniach.
W oknie Eksplorator rozwiązań otwórz folder Pages. Oprócz plików MoonPhasePage, SunrisePage i AboutPage ten folder zawiera jeszcze dwie strony:
AstronomiczneBodiesPage. Ta strona zawiera cztery przyciski, które umożliwiają użytkownikowi wybranie szczegółów Słońca, Księżyca, Ziemi lub Komety Halleya. Bieżąca wersja aplikacji jest po prostu weryfikacją koncepcji. W przyszłości ta strona umożliwia użytkownikowi wybranie większej listy.
Astronomicznastrona. Ta strona służy do wyświetlania informacji o ciele astronomicznym.
Strona Astronomiczna jest już dodawana jako karta na stronie wyświetlanej po kliknięciu wysuwanego menu astronomicznego.
Dodawanie trasy dla strony szczegółów
Aby przejść do strony AstronomicznaBodyPage, musisz skonfigurować trasę, rejestrując ją w konstruktorze klasy programu AppShell :
public AppShell() { InitializeComponent(); Routing.RegisterRoute("astronomicalbodydetails", typeof(AstronomicalBodyPage)); }
Przejdź do strony szczegółów
Teraz musimy wykonać nawigację. W AstronomicalBodiesPage.xaml.cs utwórz programy obsługi zdarzeń kliknięć dla każdego
Buttonna stronie.public AstronomicalBodiesPage() { InitializeComponent(); btnComet.Clicked += async (s, e) => await Shell.Current.GoToAsync("astronomicalbodydetails"); btnEarth.Clicked += async (s, e) => await Shell.Current.GoToAsync("astronomicalbodydetails"); btnMoon.Clicked += async (s, e) => await Shell.Current.GoToAsync("astronomicalbodydetails"); btnSun.Clicked += async (s, e) => await Shell.Current.GoToAsync("astronomicalbodydetails"); }Za każdym razem, gdy zostanie kliknięty
Button, aplikacja przejdzie do strony AstronomicznaStrona . Ale nadal musimy wysłać jaki rodzaj ciała astronomicznego do wyświetlenia.Aby wysłać dane do aplikacji AstronomicznaBodyPage, dodaj ciąg parametru zapytania do informacji o routingu. Ciąg ma postać
?astroName=astroBodyToDisplay.btnComet.Clicked += async (s, e) => await Shell.Current.GoToAsync("astronomicalbodydetails?astroName=comet"); btnEarth.Clicked += async (s, e) => await Shell.Current.GoToAsync("astronomicalbodydetails?astroName=earth"); btnMoon.Clicked += async (s, e) => await Shell.Current.GoToAsync("astronomicalbodydetails?astroName=moon"); btnSun.Clicked += async (s, e) => await Shell.Current.GoToAsync("astronomicalbodydetails?astroName=sun");Aby odbierać dane na stronie AstronomicznaBodyPage, najpierw utwórz właściwość na poziomie klasy do przechowywania danych przychodzących. Nazwij go
AstroName.string astroName; public string AstroName { get => astroName; set { astroName = value; // this is a custom function to update the UI immediately UpdateAstroBodyUI(astroName); } }UpdateAstroBodyUI(astroName)W tym miejscu element jest funkcją pomocnika używaną do natychmiastowej aktualizacji interfejsu użytkownika po ustawieniuAstroNamewłaściwości.Następnie należy ozdobić klasę adnotacją, która mapuje parametr zapytania przychodzącego na utworzoną właściwość.
[QueryProperty(nameof(AstroName), "astroName")] public partial class AstronomicalBodyPage { ... }Uruchom aplikację i wybierz kartę zatytułowaną Ciała.
Wybierz przycisk Sun (Słońce). Powinny zostać wyświetlone szczegóły słońca. Pasek nawigacyjny powinien zawierać strzałkę wstecz, która umożliwia użytkownikowi powrót do listy treści. Pozostałe karty są nadal widoczne i aktywne:
Zamknij aplikację i wróć do programu Visual Studio lub Visual Studio Code.