0

RSS フィードから目的の記事を開くには、コードに何を追加すればよいかご存じですか。新しい形で。

新しいフォームで、記事のタイトルとコンテンツを取得する必要があります。画像はオプションです

記事のリストがある私のコードは次のとおりです。

private void ls_text_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        try
        {
    ListBox listBox = sender as ListBox;

            if (listBox != null && listBox.SelectedItem != null)
            {
                SyndicationItem sItem = (SyndicationItem)listBox.SelectedItem;

                if (sItem.Links.Count > 0)
                {
                     if (listBox != null && listBox.SelectedItem != null)
            {

                SyndicationItem sItem = (SyndicationItem)listBox.SelectedItem;
                PhoneApplicationService.Current.State["myItem"] = sItem;

                NavigationService.Navigate(new Uri("/Clanak.xaml",UriKind.Relative));// leads to article form

                }
            }
        }
        catch (Exception f)
        {

            MessageBox.Show(f.Message, "", MessageBoxButton.OK);
        }
    }

私はほとんどの仕事を正しく行うコードを書きました:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        try
        {
            SyndicationItem sItem = PhoneApplicationService.Current.State["myItem"] as SyndicationItem;
            PageTitle.Text = sItem.Title.Text; //Title would go in the pagetitle of the form , Title shows fine
            PageTitle.FontSize = 40;
            //tb_Content.Text = sItem.Summary.Text; //all goes fine

            foreach (SyndicationItem item in sItem.SourceFeed.Items)
            {
                foreach (SyndicationElementExtension ext in item.ElementExtensions)
                {

                    if (ext.GetObject<XElement>().Name.LocalName == "encoded")

                        tb_Content.Text = ext.GetObject<XElement>().Value; //textblock for content, throws NullReferenceException
                }
            }
        }
        catch (Exception f)
        {

            MessageBox.Show(f.Message, "Error clanak", MessageBoxButton.OK);
        }
    }

コンテンツが認識されず、NullReference が常に取得されます。TextBlock に概要をリンクすると、記事の日付が正常に表示されました。また、すべての記事がリストされているリストに戻るたびに、「OnNavigatedTo と OnNavigatedFrom の間でのみ State を使用できます」というエラーが表示されます。ホームボタンを押すと、デバッガーが表示されます (アプリがクラッシュします)。

これは私が得るものです: タイプ 'System.InvalidOperationException' の最初のチャンスの例外が Microsoft.Phone.dll で発生しました タイプ 'System.Security.SecurityException' の最初のチャンスの例外が System.Runtime.Serialization.dll で発生しましたタイプ 'System.Reflection.TargetInvocationException' が mscorlib.dll で発生しました タイプ 'System.Security.SecurityException' の最初の例外が System.Runtime.Serialization.dll で発生しました スレッド '' (0xfc2037a) がコード 0 (0x0) で終了しました)。スレッド '' (0xe880366) はコード 0 (0x0) で終了しました。スレッド '' (0xe310372) はコード 0 (0x0) で終了しました。スレッド '' (0xf970392) はコード 0 (0x0) で終了しました。スレッド '' (0xe470392) はコード 0 (0x0) で終了しました。

これは私が取り組んでいるフィードです: http://www.zimo.co/feed/ 私の主な問題は、nullref を通過する方法です。例外を取得してコンテンツを取得します。

4

1 に答える 1

2

まず、Item別の からアクセスできる場所にを保存する必要がありますPage

例えば:

SyndicationItem sItem = (SyndicationItem)listBox.SelectedItem;  
PhoneApplicationService.Current["myItem"] = sItem;

それより、新しいページを作成してそこに移動しますNavigationService.Navigate(new Uri("/newPage.xaml"));

詳細ページのコンストラクターで、必要に応じてタイトルとコンテンツを入力します

SyndicationItem sItem = PhoneApplicationService.Current["myItem"] as SyndicationItem;
// set Title and so on...
于 2012-04-21T14:07:13.870 に答える