簡體   English   中英

列表框SelectionChanged WP7可使用參數進行導航

[英]ListBox SelectionChanged WP7 to navigate with parameters

因此,在我正在制作的Windows Phone 7應用程序中,我將ListBox與SelectionChanged事件處理程序一起使用,以將用戶導航到新的網頁,從而顯示其他信息。 MainPage.xaml顯示一個列表框,其中填充了來自JSON文件的信息,該列表框可以正常工作。 但是,如果用戶想閱讀有關新聞的更多信息,則他/她將必須在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等)使用帶有getter和setter的類(newsContentGetSet.cs),但是當激發SelectionChanged時,.cs文件不會設置新給定的newslistJson值! 為什么?

我還嘗試在NavigationService中僅發送文本參數,但是newsContent字符串太長(整個新聞故事),因此它返回“ shell page uri too long”錯誤。

現在,這只是將索引int發送到NewsPage頁面,該頁面試圖捕獲值,但是由於newsContentGetSet實際上沒有設置任何東西(嘗試時不會對其進行調試)而失敗。 Aaany的想法,真的嗎?

而不是通過參數傳遞數據。 您應該將數據保存到App類中的變量中,然后在導航到下一頁時從那里檢索它們。

App.xaml.cs

public static fetchNewsContent newsContentGetSet;

訪問它

var fetchedNewsContent = App.fetchNewsContent;

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM