问题
我有一个包含一系列项目的 XML 文件。我可以正确绑定到项目列表以及节点上的属性。但是,我无法绑定任何子元素,并且不确定要使用什么XPath
或Path
使用什么。如何将数组项的子元素绑定到一个DataGridColumn
?
更多细节
我有一个.rdl
文件,基本上是 XML,并且想批量添加图像,而 SSRS 不这样做。为了解决这个问题,我创建了一个 WPF 应用程序,XmlDataProvider
如下所示:
<UserControl.DataContext>
<XmlDataProvider x:Name="dpReport" Source="MyFile.rdl" XPath="rd:Report/rd:EmbeddedImages/rd:EmbeddedImage" />
</UserControl.DataContext>
我必须rd
在 XAML 和代码隐藏的 NameTable 中添加前缀,否则它不会绑定。
我有一个DataGrid
正确绑定到列表的 ,以及一个正确绑定到属性的列Name
。但是,我还想绑定到MIMEType
和ImageData
子元素。我该怎么做?
简化DataGrid
的 Xaml
<DataGrid x:Name="lstImages" AutoGenerateColumns="False" ItemsSource="{Binding}" Grid.Row="2">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding XPath=@Name,Mode=TwoWay}"/>
<!-- MIMEType Here -->
</DataGrid.Columns>
</DataGrid>
XPaths 尝试:
我尝试使用以下绑定的变体:
<DataGridTextColumn Header="MimeType" Binding="{Binding XPath=MIMEType}"/>
<DataGridTextColumn Header="MimeType" Binding="{Binding XPath=MIMEType/text()}"/>
<DataGridTextColumn Header="MimeType" Binding="{Binding XPath=/MIMEType[1]/text()}"/>
<DataGridTextColumn Header="MimeType" Binding="{Binding XPath=MIMEType[1]/text()}"/>
<DataGridTextColumn Header="MimeType" Binding="{Binding XPath=(/MIMEType/text())[0]}"/>
<DataGridTextColumn Header="MimeType" Binding="{Binding XPath=(MIMEType/text())[0]}"/>