列表框选择改变了WP7使用参数导航



因此,在我正在制作的Windows Phone 7应用程序中,我使用带有SelectionChanged事件处理程序的ListBox将用户导航到新网页,显示其他信息。主页。xaml显示了一个ListBox,其中填充了来自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));
    }

这只是使用一个类(newsContentGetSet.cs),为每个字符串(newsID, newsTitle等)提供getter和setter,但是当SelectionChanged被触发时,如果.cs文件没有设置新给定的newslistJson值!为什么?

我还尝试在NavigationService中只发送文本参数,但newsContent字符串太长(整个新闻故事),因此它返回"shell页面uri太长"错误。

现在,这只是将索引int发送到NewsPage页面,该页面试图捕获值,但失败了,因为newsContentGetSet实际上没有设置任何内容(当我尝试时不会调试它)。真的有什么想法吗?

不传递数据参数。你应该将数据保存到App类的变量中,然后当你导航到下一页时从那里检索它们。

App.xaml.cs

public static fetchNewsContent newsContentGetSet;

访问它
var fetchedNewsContent = App.fetchNewsContent;

您可以从任何页面存储/检索数据。请注意,如果应用程序关闭,则数据将消失。

最新更新