Windows phone application karena dasarnya adalah Silverlight, kita dapat menggunakan page navigation untuk berpindah ke halaman yang berbeda. Banyak hal yang dapat digunakan dengan navigation page ini, selain berpindah halaman kita juga dapat mempengaruhi halaman berikutnya dari code yang teradapat pada halaman pertama. pada post ini saya akan memberikan contoh berpindah halaman dengan memperngaruhi halaman tersebut dengan warna dan perpindahan data memanfaatkan query pada navigation.
berpindah halaman dapat digunakan code :
//pada page pertama
this.NavigationService.Navigate(new Uri("/PageTwo.xaml", UriKind.Relative));
e.Complete();
e.Handled = true;
//pada page kedua
this.NavigationService.GoBack();
e.Complete();
e.Handled = true;
dasar dari code diatas adalah berpindah halaman dari page pertama ke page kedua :

pada halaman pertama, textblock “go page 2” ditanamkan method yang isinya perintah untuk melakukan navigation service ke url page 2, dan pada “go to page one” dihalaman 2 ditamkan method navgation service tetapi pada halaman ini menggunakan GoBack, akan kembali pada halaman sebelumnya.
pada contoh ini, terdapat juga method :
protected override void OnManipulationStarted(ManipulationStartedEventArgs args)
{
ContentPanel.Background = new SolidColorBrush(
Color.FromArgb(255, (byte)rand.Next(255),
(byte)rand.Next(255),
(byte)rand.Next(255)));
base.OnManipulationStarted(args);
}
method tersebut akan melakukan perubahan warna secara random pada content panel jika kita melakukan “tap” pada layar windows phone. Sekarang bagaimana memberikan sebuah nilai pada halaman kedua dari halaman pertama? misalnya, kita mengisi nama dan usia pada halaman pertama, dan hasilnya akan ditampilkan pada halaman kedua. dasar dari code untuk perpindahan data :
//pada page pertama
this.NavigationService.Navigate(new Uri("/PageTwo.xaml?parameter1=value¶meter2=value", UriKind.Relative));
//pada page kedua, membuat method onNavigatedTo untuk menerima parameter tersebut, misalnya :
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string Parameter1 = NavigationContext.QueryString["parameter1"];
string Parameter2 = NavigationContext.QueryString["parameter2"];
}
Dari dasar code diatas, sudah dapat membuat perpindahan nilai variabel dari halaman pertama ke halaman berikutnya, nah…sekarang pada project ini akan diperlihatkan caranya :
//code pada halaman pertama
private void button1_Click(object sender, RoutedEventArgs e)
{
if (txtNama.Text != "" && txtUsia.Text != "")
{
string Nama = txtNama.Text;
string usia = txtUsia.Text;
this.NavigationService.Navigate(new Uri("/PageTwo.xaml?nama="+Nama+"&usia="+usia, UriKind.Relative));
}
else
{
MessageBox.Show("Isi nama dan usia");
}
}
//code pada halaman kedua
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string Nama = NavigationContext.QueryString["nama"];
string usia = NavigationContext.QueryString["usia"];
nama.Text = Nama;
Usia.Text = usia;
base.OnNavigatedTo(e);
}
Source code bisa didowload disini, Semoga bermanfaat.. 