2013-02-28 48 views
2

因此,在Windows Phone 7應用我做,我用一個列表框與SelectionChanged事件處理程序,以一個用戶導航到一個新的網頁,顯示出更多的信息。 MainPage.xaml顯示了一個ListBox,其中填充了來自JSON文件的信息,該信息可正常工作。但是,如果用戶想要閱讀更多有關消息,他/她將必須點擊ListBox中的消息,這將觸發SelectionChanged事件,它看起來像這樣:列表框的SelectionChanged WP7與參數導航

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)); 

    } 

這僅僅使用一類(newsContentGetSet.cs)與getter和setter每個串(NewSID的,newsTitle等),但是當的SelectionChanged被觸發,它的cs文件不設置新給出的newslistJson值!爲什麼?

我也試過在的NavigationService發送純文本參數,但newsContent字符串太長(整個新聞報道),因此它返回一個「殼頁面URI太長」的錯誤。

現在,它只發送索引int到NewsPage頁面,該頁面試圖捕獲這些值,但因爲newsContentGetSet實際上沒有設置任何東西(在我嘗試時沒有調試到它),所以失敗。 Aaany的想法,真的嗎?

回答

1

而是傳遞的參數數據。您應該將數據保存到應用程序類的變量中,然後在導航到下一頁時從那裏檢索它們。

App.xaml.cs

public static fetchNewsContent newsContentGetSet; 

訪問它

var fetchedNewsContent = App.fetchNewsContent; 

您可以存儲/從任何頁面檢索數據。請注意,如果應用程序關閉,則數據不見了。

+0

作品!另一個真棒拯救你。謝謝! – AndreasB 2013-02-28 15:08:32