そのため、作成中の Windows Phone 7 アプリでは、ListBox を SelectionChanged イベント ハンドラーと共に使用して、ユーザーを新しい Web ページに移動し、追加情報を表示します。MainPage.xaml は、正しく機能する JSON ファイルからの情報が取り込まれた ListBox を示しています。ただし、ユーザーがニュースの詳細を読みたい場合は、ListBox 内のニュースをクリックする必要があります。これにより、次のような SelectionChanged イベントが発生します。
private void NewsList_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
int index = NewsList.SelectedIndex;
fetchNewsContent newsContentGetSet = new fetchNewsContent();
newsContentGetSet.newsID = newslistJson.ElementAt(index).news_id;
newsContentGetSet.newsTitle = newslistJson.ElementAt(index).news_title;
newsContentGetSet.newsAbstract = newslistJson.ElementAt(index).news_abstract;
newsContentGetSet.newsContent = newslistJson.ElementAt(index).news_content;
newsContentGetSet.newsAuthor = newslistJson.ElementAt(index).news_author;
newsContentGetSet.newsDatePublished = newslistJson.ElementAt(index).news_date_published_no;
//object[] someobject = { newsContentGetSet.newsID, newsContentGetSet.newsTitle, newsContentGetSet.newsAbstract, newsContentGetSet.newsContent, newsContentGetSet.newsAuthor, newsContentGetSet.newsDatePublished };
NavigationService.Navigate(new Uri("/NewsPage.xaml?obj=" + index, UriKind.Relative));
}
これは単純に、各文字列 (newsID、newsTitle など) のゲッターとセッターを持つクラス (newsContentGetSet.cs) を使用しますが、SelectionChanged が起動されると、.cs ファイルは新しく指定された newslistJson 値を設定しません! なんで?
また、NavigationService でテキスト パラメータのみを送信しようとしましたが、newsContent 文字列が長すぎる (ニュース記事全体) ため、「シェル ページ uri が長すぎます」というエラーが返されました。
現在、これは単純にインデックス int を NewsPage ページに送信し、値をキャプチャしようとしますが、newsContentGetSet が実際には何も設定していないため失敗します (試行時にデバッグしません)。本当にアイデアはありますか?