Kezdőlap > .NET, Windows Phone 7 > WP7 Navigáció – Paraméter átadása

WP7 Navigáció – Paraméter átadása

2012. március 15. csütörtök Hozzászólás Go to comments

imageJogosan merülhet fel a kérdés, hogy ha Page-based navigációs modellt használ a Windows Phone, akkor hogy adhatunk át paramétereket egyik oldalról a másiknak. Egyfelől van egy query sztringes megoldás is, ugyanolyan, mint a honlapok esetén. Ez az könnyű megadási módszer, egyszerűbb esetekben célszerű ezt használni. A menete a következő:

1. Hozzunk létre egy új Windows Phone 7 alkalmazást!

2. Adjunk hozzá egy új oldalt: Add -> New Item -> Windows Phone Portrait Page! Az oldal neve legyen Second.xaml!

3. Térjünk vissza a MainPage-re, majd a MainPage-re dobjunk fel egy TextBoxot és egy gombot! A Textbox neve legyen txtName, a Text tulajdonsága pedig üres legyen! A gomb neve legyen a btnLogin, a Content tuldjosága pedig Bejelentkezés!

4. Kattintsunk a Bejelentkezés gombra kétszer és az esemény törzsébe írjuk a következőt:

private void btnLogin_Click(object sender, RoutedEventArgs e)

{

NavigationService.Navigate(new Uri("/Second.xaml?username="+ txtName.Text, UriKind.Relative));

}

Látható, hogy a paramétert az URI-ban adjuk át. Megadjuk a kulcsot, ami a kérdőjel utáni szöveg, majd az egyenlőségjel után hozzáfűzzük a txtName tartalmát.

5. Ez eddig egyszerű, viszont a fogadó oldalt is fel kell készítenünk arra, hogy ezt a paramétert fogadja. Navigáljunk el a Second.xaml.cs állományhoz, majd definiáljuk felül az OnNavigatedTo metódusát!

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)

{

    base.OnNavigatedTo(e);

    string userName = "";

    if (NavigationContext.QueryString.TryGetValue("username", out userName))

    {

        PageTitle.Text = userName;

    }

}

imageAhhoz, hogy kinyerjük a paraméter értékét, a NavigationContext.QueryString.TryGetValue metódusát használtuk. Indexer segítségével is lehetséges, de a TryGetValue az egyik legbiztonságosabb módja annak, hogy a paraméter értékét kinyerjük. Az első paramétere a kulcs, amit a navigációnál megadtunk. Fontos, hogy ez megegyezzen az eredeti kulccsal! Ha elírás történik, nem kapja meg az értékét a userName sztring, ami egy out paraméter. A TryGetValue egy boolen értékkel tér vissza. Ha sikerült értéket kivennie, akkor az értéke true, azaz az elágazásban lefutnak a kódok. Jelen esetben a PageTitle szövege az lesz, amit a paraméterben átadtunk.

Láthatjuk, hogy paramétert átadni nem bonyolult, viszont mi van akkor, ha komplex objektumot, esetleg listákat kellene átadnunk? Akkor ez a megoldás egyfelől kényelmetlen, másfelől túl komplex és körülményes lehet. Ennek kiküszöbölésére a későbbiekben láthatjuk azt is, hogy lehet komplex objektumot átadni.

Advertisements
Kategóriák:.NET, Windows Phone 7 Címke: , , ,
  1. Még nincs hozzászólás.
  1. No trackbacks yet.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: