オルタナティブ・ブログ > イメージ AndAlso ロジック >

ヴィジュアル、サウンド、テキスト、コードの間を彷徨いながら、感じたこと考えたことを綴ります。

Mango 対応 Silverlight 検索アプリケーションの作成(8)「今日の献立」データ読み込み、LINQ によるクエリ、日付の表示。

»

先に、お知らせです。
本日、Windows Phone Developer Day 開催
UStream 中継」もあります!

さて、Mango 対応 Silverlight 検索アプリケーションの作成、前回からの続きです。

「今日の献立」の処理を説明します。
「今日の献立」のXML文書ファイルのダウンロードが完了した時の処理です。System.Xml.Linq名前空間、XElement.Parseメソッドで、変数item1Docに、XMLを格納した文字列からXElementを読み込みます。

    Private Sub item1_DownloadCompleted(ByVal sender As Object, ByVal e As DownloadStringCompletedEventArgs)
        Dim item1Data As String = e.Result
        item1Doc = XElement.Parse(item1Data)

今日の日付を取得し、myDateという名前のTextBlockに表示します。

        Dim displayDate As String = DateTime.Today.ToString("d")
        myDate.Text = displayDate

LINQ to XMLを用いて、変数item1Docに読み込まれているXMLから、"画像"属性を取得します。ドメインを含むパスと連結して画像ファイル名を変数に代入します。これを絶対パスで指定して、ImageコントロールのSourceに適用します。ここでBitmapImageを使うために、前回、System.Windows.Media.Imaging名前空間をインポートしています。

        Dim todayMenuImageQuery = item1Doc.Descendants("主献立").@画像
        Dim todayMenuImageUri As String = "
XML文書ファイルのあるサーバのドメイン名など" & todayMenuImageQuery
        Image1.Source = New BitmapImage(New Uri(todayMenuImageUri, UriKind.Absolute))

LINQ to XMLを用いて、変数item1Docに読み込まれているXMLから、<主献立>、<菜食基本食材>、<菜食オプション>、<作り分け方>、<肉>、<魚介>、<乳>、<卵>の各クエリを取得し、データをそれぞれのTextBlock内に表示します。

       Dim todayMenuNameQuery = item1Doc.Descendants("主献立")
        TextBlock1.Text = todayMenuNameQuery.Value
        Dim todayIngredientsQuery = item1Doc.Descendants("菜食基本食材")
        TextBlock2.Text = "【菜食基本食材】" & vbCrLf & todayIngredientsQuery.Value
        Dim todayVegeOptionQuery = item1Doc.Descendants("菜食オプション")
        TextBlock3.Text = "【菜食オプション】" & vbCrLf & todayVegeOptionQuery.Value
        Dim todayHowtoQuery = item1Doc.Descendants("作り分け方")
        TextBlock4.Text = "【作り分け方】" & vbCrLf & todayHowtoQuery.Value
        Dim todayMeatQuery = item1Doc.Descendants("肉")
        Dim todayFishQuery = item1Doc.Descendants("魚介")
        Dim todayMilkQuery = item1Doc.Descendants("乳")
        Dim todayEggQuery = item1Doc.Descendants("卵")
        TextBlock5.Text = "【肉食食材】" & vbCrLf & "肉:" & todayMeatQuery.Value & vbCrLf & "魚介類:" & todayFishQuery.Value & vbCrLf & "乳製品:" &
todayMilkQuery.Value & vbCrLf & "卵:" & todayEggQuery.Value
        Dim todayMenuQuery = item1Doc.Descendants("献立例")
        TextBlock6.Text = "【献立例】" & vbCrLf & todayMenuQuery.Value
    End Sub

次回に続きます。

Comment(0)