2

次のコードがあります。

<Window.Resources>
    <XmlNamespaceMappingCollection x:Key="ns">
        <XmlNamespaceMapping Prefix="a" Uri="http://musicbrainz.org/ns/mmd-2.0#" />
    </XmlNamespaceMappingCollection>
    <XmlDataProvider XmlNamespaceManager="{StaticResource ns}" x:Key="SearchArtistDataSource" XPath="/a:metadata/a:artist-list/a:artist" Source="file.xml" />
</Window.Resources>
<DataGrid x:Name="SearchArtistDataGrid" ItemsSource="{Binding Source={StaticResource SearchArtistDataSource}}">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding XPath=a:name}" />
        <DataGridTextColumn Binding="{Binding XPath=a:country}" />
    </DataGrid.Columns>
</DataGrid>

そして、ここに私が使用している XML ファイルがあります: http://pastebin.com/5bUCBisB

これまでに達成したことは、DataGrid を XmlDataProvider にある程度バインドすることです。XML ファイルからいくつかの列を自動生成するので、多くのことを知ることができます。問題は、私が追加しようとしている手動のもの(アーティストリスト配列からアーティストの名前と国を表示する)-何も表示されないことです。

価値があるのは、同様のアプローチがListViewでうまく機能したため、移行中に行き詰まりました。

私は何を間違っていますか?

4

1 に答える 1

2

MSDN フォーラムで回答を得ました...後知恵はこれで強力です。

XmlNamespaceManagerだけでなく、それ自体XmlDataProviderにも接続する必要があります。DataGrid

<DataGrid Binding.XmlNamespaceManager="{StaticResource ns}">

これが、同様の問題を抱えている人に役立つことを願っています。

于 2012-05-26T11:39:27.303 に答える