我們知道UWP是通過不同的頁面來展示不同的內容的,那麼我們該怎麼進行頁面之間的傳值呢? 首先我們在MainPage裡面寫一個ListView來展示一些英文單詞。 1 List<English> wordList = new List<English> 2 { 3 new English { Word
我們知道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 }
這個時候我們就拿到了 傳過來的值並把它顯示到了第二個頁面上 。是不是很簡單呢?
最後,當然來看看效果吧。