この記事はポイントポイントにばらして書いていこうと思います。
まずは、画面遷移後のページにタイトルを表示しましょう。
伊勢さんの画面遷移の所のコードを書き足します。
MainPage.xaml.cs
>>Before
void photoListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.AddedItems.Count > 0) { HatenaFotolifeRssItem item = (HatenaFotolifeRssItem)e.AddedItems[0]; NavigationService.Navigate(new Uri(string.Format("/ImagePage.xaml?image={0}", item.ImageUrl), UriKind.Relative)); } }
>>After
void photoListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.AddedItems.Count > 0) { HatenaFotolifeRssItem item = (HatenaFotolifeRssItem)e.AddedItems[0]; NavigationService.Navigate(new Uri(string.Format("/ImagePage.xaml?image={0}&title={1}", item.ImageUrl, item.Title), UriKind.Relative)); } }
追記した所は、URLでGETで投げてる所に、item.Titleを増やしただけです。
次に遷移先で受け取って、page nameを書き換えましょう。
ImagePage.xaml.csを書き換えます。
>>Before
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { if (NavigationContext.QueryString.ContainsKey("image")) { image.Source = new BitmapImage(new Uri(NavigationContext.QueryString["image"])); } }
>>After
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { if (NavigationContext.QueryString.ContainsKey("image")) { image.Source = new BitmapImage(new Uri(NavigationContext.QueryString["image"])); PageTitle.Text = NavigationContext.QueryString["title"]; } }
titleキーのQueryStringをPageTitle.Textに投げてるだけです。
簡単ですねっ!