2016-12-07 90 views
1

我想將XML文件中的數據綁定到組合框。我沒有看到任何錯誤,但ComboBox框未按預期填充。使用XMLDataProvider作爲靜態資源將數據綁定到組合框WPF

<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> 

在我的App.xaml

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

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="genreList"而不是XPath="genre"

基礎上MSDN examples,登記應該是:

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

太謝謝你了 - 這做到了。現在我更瞭解xpath的工作原理。我之前找到的例子並不清楚。謝謝! –