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

这个时候我们就拿到了 传过来的值并把它显示到了第二个页面上 。是不是很简单呢?

最后,当然来看看效果吧。

 

原文地址:https://www.cnblogs.com/skyshalo/p/5173353.html