将多个xml文件加载到datagrid中

问题描述:

我有xml文件的列表。 (从一个目录中读取) 我想显示datagrid中每个xml文件中存在的所有记录。将多个xml文件加载到datagrid中

这里是相同的(XAML文件)代码

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=Elements[TestResult]}" x:Name="dataGrid" Margin="10,0,-1,0"> 
         <DataGrid.Columns> 
          <DataGridTextColumn Header="TestCaseId" Binding="{Binding Path=Attribute[TestCaseId].Value}" /> 
          <DataGridTextColumn Header="Outcome" Binding="{Binding Path=Attribute[Outcome].Value}"/> 
          <DataGridTextColumn Header="Duration" Binding="{Binding Path=Attribute[Duration].Value}"/> 
          <DataGridTextColumn Header="Comment" Binding="{Binding Path= Attribute[Comment].Value}"/> 
         </DataGrid.Columns> 
        </DataGrid> 

的TestResult类

class TestResult 
{  
     [XmlAttribute("TestCaseId")] 
     public string TestCaseId { get; set; } 

     [XmlAttribute("Outcome")] 
     public string Outcome { get; set; } 

     [XmlAttribute("Duration")] 
     public string Duration { get; set; } 

     [XmlAttribute("Comment")] 
     public string Comment { get; set; } 
    } 
Here is the code for loading each file in to datagrid 

不过,我可以看到只有最后一个文件的数据

foreach (string item in Files) 
     { 

      var peopleList = XElement.Load(item); 
      this.dataGrid.DataContext = peopleList; 

     } 

这里是一个xml文件

<TestResults URL="https://google.com/" StartDateTime="2016-11-11T14:52:25.2499848+05:30"> 
<TestResult TestCaseId="Smoke_21949" Outcome="Pass" Duration="00:03:09.9335101" Comment="" /> 
<TestResult TestCaseId="Smoke_31234" Outcome="Pass" Duration="00:02:56.1503179" Comment="" /> 
</TestResults> 

您需要创建一个列表,并添加到列表中,

var peopleList = new List<XElement>(); 
foreach (string item in Files) 
    { 
     peopleList.Add(XElement.Load(item));   
    } 
this.dataGrid.DataContext = peopleList; 
+0

在XAML什么变化吗?在这一行ItemsSource =“{绑定路径=元素[TestResult]}” – user3652040

+0

你不能直接设置this.dataGrid.ItemsSource = peopleList;从xaml中删除 – Sajeetharan

+0

不工作的朋友:( – user3652040