< 読み取り専用の依存関係プロパティ | DataTemplate で生成されたコントロールにアクセスする >

August 8, 2008

XAML ファイル内にデータソースを埋め込む

XmlDataProvider 要素内に x:XData 要素を定義して、その中に直接記述した XML の内容をリストボックスにデータバインドで表示しようとしていたのですが、なぜかデータが表示されず悩んでいました。

原因はなんだったかというと、ルート要素に名前空間の宣言が必要だったのです。下記のように xmlns="" を追加すると表示されるようになりました。

<UserControl.Resources>
    <XmlDataProvider x:Key="MyDataSource" XPath="/Breads">
        <x:XData>
            <Breads xmlns="">
                <Bread>ベーグル</Bread>
                <Bread>フガス</Bread>
                <Bread>バケット</Bread>
                <Bread>バタール</Bread>
                <Bread>フィセル</Bread>
                <Bread>リュスティック</Bread>
                <Bread>カイザーゼンメル</Bread>
                <Bread>ロッゲンフォルコーンブロート</Bread>
                <Bread>プレッツェル</Bread>
                <Bread>チャパタ</Bread>
            </Breads>
        </x:XData>
    </XmlDataProvider>
</UserControl.Resources>

<ListBox ItemsSource="{Binding Source={StaticResource MyDataSource}, XPath=Bread}"/>

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/2149

コメント

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?