我正在尝试将XML文件中的数据绑定到组合框。我没有看到任何错误,但ComboBox框没有按预期填充。
<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>`
答案 0 :(得分:1)
在App.xaml中XmlDataProvider
注册看起来Xpath查询错误。它应该是XPath="genreList"
而不是XPath="genre"
。
根据MSDN examples,注册应为:
<Application.Resources>
<XmlDataProvider x:Key="Genres" Source="Genres.xml" XPath="genreList" IsInitialLoadEnabled="True" />
</Application.Resources>