2016-12-07 6 views
1

データをXMLファイルからコンボボックスにバインドしようとしています。エラーは表示されませんが、ComboBoxボックスには期待どおりのデータが設定されていません。私のApp.xamlXMLDataProviderを静的リソースとして使用してデータをコンボボックスにバインドするWPF

<Application.Resources> 
    <XmlDataProvider x:Key="Genres" Source="Genres.xml" XPath="Genre" IsInitialLoadEnabled="True" /> 
</Application.Resources> 

<ComboBox x:Name="cbxGenre" HorizontalAlignment="Left" Margin="86,49.864,0,0" VerticalAlignment="Top" Width="120" Grid.Row="1"> 
       <ComboBox.ItemsSource> 
        <Binding Source="{StaticResource Genres}" XPath="./genre/name" /> 
       </ComboBox.ItemsSource> 
      </ComboBox> 

XMLファイルGenres.xml

`<genreList> 
    <genre> 
    <name>Swing</name> 
    </genre> 
    <genre> 
    <name>Blues</name> 
    </genre> 
    <genre> 
    <name>Latin</name> 
    </genre> 
    <genre> 
    <name>Pop</name> 
    </genre> 
    <genre> 
    <name>Funk</name> 
    </genre> 
    <genre> 
    <name>Folk</name> 
    </genre> 
    <genre> 
    <name>Ballad</name> 
    </genre> 
    <genre> 
    <name>Christmas</name> 
    </genre> 
    <genre> 
    <name>Western/Bluegrass</name> 
    </genre> 
</genreList>` 

答えて

1

XPathクエリは、App.xamlであなたのXmlDataProvider登録のために間違っているように見えます。 XPath="genre"の代わりにXPath="genreList"にする必要があります。

MSDN examplesに基づいて、登録する必要があります:

<Application.Resources> 
    <XmlDataProvider x:Key="Genres" Source="Genres.xml" XPath="genreList" IsInitialLoadEnabled="True" /> 
</Application.Resources> 
+0

ありがとうございました - それをやっています。今、私はxpathがどのように機能するかについてもっと理解しています。私が以前に見つけた例はあまり明確ではありませんでした。ありがとう! –

関連する問題