atelier:mitsuba

i love UI/UX, Blend, XAML, Behavior, P5, oF, Web, Tangible Bits and Physical computing. なにかあればお気軽にご連絡ください。atelier@c-mitsuba.com

Windows Phone 7 のはてなフォトライフビューワを作る (後編)その1ータイトルを表示しようー

この記事はポイントポイントにばらして書いていこうと思います。

まずは、画面遷移後のページにタイトルを表示しましょう。
伊勢さんの画面遷移の所のコードを書き足します。

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に投げてるだけです。

簡単ですねっ!