您好,
根据您的需求,我制作了一个Demo。Demo中的有一个DataGrid控件,其中包含三列:A, B, C,XMLFile1.xml中包含了您提供的测试节点数据,点击界面上的按钮,就可以加载XML数据到DataGrid,Button的Click事件实现方式为:
private void btnLoad_Click(object sender, RoutedEventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load("..\\..\\XMLFile1.xml");
XmlDataProvider xdp = new XmlDataProvider();
xdp.Document = doc;
dgStudent.DataContext = xdp;
xdp.XPath = @"root/元素";
this.dgStudent.SetBinding(ListView.ItemsSourceProperty, new Binding());
}
XAML代码:
<Window x:Class="WpfDGXML.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="250" Width="300">
<StackPanel Background="LightBlue">
<DataGrid x:Name="dgStudent" Height="170" Margin="5" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="A" Width="90">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding XPath=a}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="B" Width="90">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding XPath=b}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="C" Width="90">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding XPath=c}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<Button Content="OK" Click="btnLoad_Click" x:Name="btnLoad" Margin="5"/>
</StackPanel>
</Window>
对于变化的XML数据,您可以使用计时器控件,定时刷新数据
请阅读以下的参考资料:
#XmlDocument Class
http://msdn.microsoft.com/zh-cn/library/system.xml.xmldocument.aspx
#Binding.XPath Property
http://msdn.microsoft.com/zh-cn/library/system.windows.data.binding.xpath.aspx
<THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
Thanks
MSDN Community Support
Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.