2016-11-13 47 views
0

我有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> 

回答

1

您需要創建一個列表,並添加到列表中,

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