2017-11-13 5 views
2

WPFアプリケーションでXMLファイルからデータをロードする際に問題があります。XMLデータファイルからDataGridをロードする

XAML:

    <DataGrid Name="dataGrid" ItemsSource="{Binding Path=Elements[Person]}" AutoGenerateColumns="False" HorizontalAlignment="Left" Height="331" Margin="12,10,-1.774,0" VerticalAlignment="Top" Width="834" FontSize="18" FontFamily="SimSun"> 
        <DataGrid.Columns> 
         <DataGridCheckBoxColumn Header="Name" Binding="{Binding Path=Element[name].Value}" /> 
         <DataGridCheckBoxColumn Header="Surname" Binding="{Binding Path=Element[surname].Value}" /> 
         <DataGridCheckBoxColumn Header="Date born" Binding="{Binding Path=Element[dateBorn].Value}" /> 
        </DataGrid.Columns> 
       </DataGrid> 

XMLファイル:

<Persons> 
<Person> 
<name>Test1</name> 
<surname>Test11</surname> 
<dateBorn>02.12.1990</dateBorn> 
</Person> 

<Person> 
<name>Test2</name> 
<surname>Test22</surname> 
<dateBorn>10.12.1991</dateBorn> 
</Person> 

<Person> 
<name>Test3</name> 
<surname>Test3</surname> 
<dateBorn>09.12.1992</dateBorn> 
</Person> 

マイコード:

 var peopleList = XElement.Load(dataBaseURL); 
     dataGrid1.DataContext = peopleList; 

私は空のセルを取得し、私は<person> </person>タグからデータをロードします。

+0

は、あなたの 'peopleList'のための任意の結果を得ましたか?あなたのXMLファイルが有効でない可能性がありますか? '<?xml version =" 1.0 "encoding =" UTF-8 "?>'や末尾に ' 'というようなヘッダーがないようです。 –

答えて

0

ItemsSourceが正しいように見えるので、バインディングを行ってください。

お試しくださいdataGrid1.DataContext = peopleList.Root;

0

バインディングのような補正をする必要があります。

<DataGrid Name="dataGrid" ItemsSource="{Binding}" AutoGenerateColumns="False" HorizontalAlignment="Left" Height="331" Margin="12,10,-1.774,0" VerticalAlignment="Top" Width="834" FontSize="18" FontFamily="SimSun"> 
       <DataGrid.Columns> 
        <DataGridCheckBoxColumn Header="Name" Binding="{Binding name}" /> 
        <DataGridCheckBoxColumn Header="Surname" Binding="{Binding surname}" /> 
        <DataGridCheckBoxColumn Header="Date born" Binding="{Binding dateBorn}" /> 
       </DataGrid.Columns> 
      </DataGrid> 
関連する問題