正在将XML绑定到wpf数据网格
本文关键字:wpf 数据 数据网 网格 绑定 XML | 更新日期: 2023-09-27 18:20:16
我有一个WPF数据网格和一个xmlString,绑定它时遇到问题。
我已经阅读了这篇文章,并遵循了说明,但无法使其发挥作用。
我看到了标题栏,但里面没有数据。有什么想法吗?
我应该说,当窗口加载后单击按钮时,会调用后面的代码。
这是我的XAML
<DataGrid x:Name="dtgMain" ItemsSource="{Binding Path=Elements[panel]}">
<DataGrid.Columns>
<DataGridTextColumn Header="PanelCode" Binding="{Binding Path=Element[panelCode].InnerText}"/>
</DataGrid.Columns>
</DataGrid>
这是我的代码隐藏
System.IO.StringReader reader = new System.IO.StringReader(response);
XElement results = XElement.Load(reader);
dtgMain.DataContext = results;
这是我的xml
<data>
<load count="2">true
<panel index="10">
<panelCode>100072
</panelCode>
<panelName>COM0100072*A
</panelName>
<panelPart>100072
</panelPart>
<numberLayers>4
</numberLayers>
<panelSize.display>21.0 x 24.0
</panelSize.display>
<lastEdited.display>16/11/2011 17:13:39
</lastEdited.display>
<panelStatus.display>Measurements Stored
</panelStatus.display>
<lastEditor>admin
</lastEditor>
<numberBonds>1
</numberBonds>
<numberSubComponents>0
</numberSubComponents>
</panel>
<panel index="11">
<panelCode>100352
</panelCode>
<panelName>COM0100352*C
</panelName>
<panelPart>100352
</panelPart>
<numberLayers>8
</numberLayers>
<panelSize.display>18.0 x 24.0
</panelSize.display>
<lastEdited.display>16/11/2011 17:18:47
</lastEdited.display>
<panelStatus.display>Measurements Stored
</panelStatus.display>
<lastEditor>admin
</lastEditor>
<numberBonds>1
</numberBonds>
<numberSubComponents>0
</numberSubComponents>
</panel>
</load>
</data>
XElement没有'InnerText'属性。
你试过使用吗
Binding="{Binding Path=Element[panelCode].Value}"
相反?
编辑:
我刚刚用一个示例项目进行了测试,除了使用.Value之外,唯一的其他更改是将DataGrid的ItemsSource更改为包含"加载"节点:
ItemsSource="{Binding Path=Element[load].Elements[panel]}"
因此,您的数据网格将如下所示:
<DataGrid x:Name="dtgMain" ItemsSource="{Binding Path=Element[load].Elements[panel]}">
<DataGrid.Columns>
<DataGridTextColumn Header="PanelCode" Binding="{Binding Path=Element[panelCode].Value}"/>
</DataGrid.Columns>
</DataGrid>