【Win10开发】如何在页面之间传值
我们知道UWP是通过不同的页面来展示不同的内容的,那么我们该怎么进行页面之间的传值呢?
首先我们在MainPage里面写一个ListView来展示一些英文单词。
1 List<English> wordList = new List<English> 2 { 3 new English { Word = "absolutely",}, 4 new English { Word = "acceleration"}, 5 new English { Word = "acceptance"}, 6 new English { Word = "accessory"}, 7 new English { Word = "accidental"}, 8 new English { Word = "accommodate"}, 9 new English { Word = "accord"}, 10 new English { Word = "accordance"}, 11 new English { Word = "accordingly"}, 12 new English { Word = "accumlate"}, 13 new English { Word = "accustom"}, 14 }; 15 ... 16 ... 17 public class English 18 { 19 public string Word { get; set; } 20 }
然后将数据绑定到控件上。
1 list.ItemsSource = wordList;
接下来重点来了,我们要实现点击ListView的一个项时导航到另外一个页面并显示所选择的项。页面跳转时我们需要Navigate方法。它的第一个参数是需要导航的下一个页面,而第二个参数就是传给下一个页面的值。我们来看看具体代码吧。
1 private void list_ItemClick(object sender, ItemClickEventArgs e) 2 { 3 this.Frame.Navigate(typeof(SelectWord),(e.ClickedItem as English).Word); 4 }
此时当导航到下一个页面时,值同时也会传过去。那么在下一个页面如何去接受这个值呢?
我们就需要重写OnNavigatedTo方法,它的参数就是我们需要的值,来看代码。
1 protected override void OnNavigatedTo(NavigationEventArgs e) 2 { 3 select.Text = e.Parameter.ToString(); 4 base.OnNavigatedTo(e); 5 }
这个时候我们就拿到了 传过来的值并把它显示到了第二个页面上 。是不是很简单呢?
最后,当然来看看效果吧。