評価してください: 

それじゃ、ニュースページに RSS リーダーを作ってみよう。はじめにメニューの [プロジェクト] - [参照の追加] - [参照] でライブラリ※を追加しておこう。では、パノラマ画面の上 (黒い部分) をダブルクリックして、コード画面から実装開始だ。

※%ProgramFiles%\Microsoft SDKs\Silverlight\v4.0\Libraries\Client\System.ServiceModel.Syndication.dll

最初にディレクティブ (using) 定義をしておくと後で楽だね。

using System.ServiceModel.Syndication;
using System.IO;
using System.Text;
using System.Xml;

まずは RSS データを読み込むためのコードを実装しよう。DownloadStringCompleted は += を押した後に Tab キーを 2 回打つとイベント ハンドラーの関数も作成してくれるから全部打ち込む必要はないよ。

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{

    WebClient cli = new WebClient();
    cli.DownloadStringCompleted += new
        DownloadStringCompletedEventHandler(cli_DownloadStringCompleted);
    cli.DownloadStringAsync(
        new Uri("http://www.microsoft.com/japan/msdn/rss.xml", UriKind.Absolute));
}

続けてデータ処理だね。Web から読み込んだテキストの入力データをストリーム経由で XML にした後、SyndicationFeed で内容を RSS のデータ構造に割り当ててるよ。

void cli_DownloadStringCompleted(object sender, DownloadStringCompletedE…
{

    if (e.Error != null)
     {
        MessageBox.Show("エラー:" + e.Error.Message);
        return;
    }

    StringReader sr = new StringReader(e.Result);
    XmlReader xr = XmlReader.Create(sr);
    SyndicationFeed sf = SyndicationFeed.Load(xr);
    this.DataContext = sf;
}

次はデザイン。MainPage.xaml にリストボックスをデザインしたテンプレートを記述しよう。

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="ListTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Title.Text}" Tag="{Binding Links[0].Uri}"/>
            <TextBlock Text ="{Binding Title.Text }" Foreground="Red"/>
            <TextBlock Text ="{Binding Summary.Text}"
             TextWrapping="Wrap" Height="80"/>
        </StackPanel>
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>

最後はリストボックス。テンプレートを適応したリストボックスを追加すれば OK だ。

<controls:PanoramaItem Header="ニュース">
    <Grid >
        <ListBox
            ItemTemplate="{StaticResource ListTemplate}"
            ItemsSource="{Binding Items}"/>
    </Grid>
</controls:PanoramaItem>

RSS の代わりに Twitter から情報を取り出したい人は↓これを Check ネ!
クラウディアと Twitter でコミュニケーションするアプリケーションを作ってみよう

  1. 戻る
  2. 次へ
  1. トップへ戻るトップへ戻る
  2.   1  |
  3.   2  |
  4.   3  |
  5.   4  |
  6.   5  |
  7.   6  |
  8.   7  |
  9.   8  

ページのトップへ