c# - 将 DataGrid 绑定(bind)到 XmlDataProvider 时出现问题

标签 c# wpf wpf-controls wpfdatagrid

我有以下代码:

<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 绑定(bind)到 XmlDataProvider - 我可以说很多,因为它从 XML 文件中自动生成一些列。问题是我尝试添加的手动内容(显示艺术家列表数组中艺术家的姓名和国家/地区) - 其中没有显示任何内容。

无论如何,类似的方法在 ListView 中运行良好,但我在迁移时遇到了困难。

我做错了什么?

最佳答案

我在 MSDN 论坛上得到了答案...事后看来,这个答案很强大。

XmlNamespaceManager 不仅必须附加到 XmlDataProvider,还必须附加到 DataGrid 本身:

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

希望这对遇到类似问题的人有所帮助。

关于c# - 将 DataGrid 绑定(bind)到 XmlDataProvider 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762786/

相关文章:

c# - 为什么数据库查询只会在应用程序中变慢?

wpf - 使用 MVVM 分配数据上下文的最佳方法是什么?

c# - Border.Effect 绑定(bind)泄漏内存但 Border.Background 没有

c# - 文本框周围的部分边框

WPF:在图像元素中使用特定的图标图像

c# - 如何使用 Kendo Grid 绑定(bind) JSON 数据

c# - 如何撤销用于阻止用户的引用 token ?

c# - ffmpeg 将命令的输出写入文本文件不适用于 C#

wpf - 填充 "corner radiuced"边框

.net - 扩展器旧子弹仍然显示