XmlDataProviderを使ってXmlをバインドする(C# / Xaml)
これまで、Xmlのデータを使おうと思った場合、XmlDocumentに突っ込んで、パースして、必要なデータのみを抜き出したClassを作って、バインドしていたのですが、これをもっと楽にできないかと思って、調べてみると、XmlDataProvider(MSDN)というものがあることがわかりました。
というわけで、早速サンプル。
今度はこれをMVVMモデルで使うのか。
たぶん、XmlDataProviderオブジェクトを作って、それをItemsSourceにバインドするのかな。
やったことないからわかんないけど……。
というわけで、早速サンプル。
<Grid>
<Grid.Resources>
<XmlDataProvider x:Key="SampleData" XPath="route/region">
<XmlDataProvider.Source>[Uri]</XmlDataProvider.Source>
</XmlDataProvider>
</Grid.Resources>
<ListBox>
<ListBox.ItemsSource>
<Binding Source="{StaticResource SampleData}" />
</ListBox.ItemsSource>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock FontSize="12" Foreground="Red">
<TextBlock.Text>
<Binding XPath="name"/>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
XmlDataProvider.SourceにはUriを設定できるようです。今度はこれをMVVMモデルで使うのか。
たぶん、XmlDataProviderオブジェクトを作って、それをItemsSourceにバインドするのかな。
やったことないからわかんないけど……。