在DataGrid中显示XML文件

时间:2014-10-02 12:20:59

标签: c# xml wpf datagrid

我创建了xml文件,其中包含许多标签内的标签。我定义了很多客户。我试图将xml文件加载到DataSet并在DataGrid中显示它,但是debuger通知我datagrid找不到表。

DataSet xmlData = new DataSet();
xmlData.ReadXml("Filename", XmlReadMode.Auto);
DataGrid dataGrid = new DataGrid();
dataGrid.ItemSource=xmlData.Tables[0].DefaultView;

我的xml文件内容:

<Table> 
   <client> 
      <borrow_id></borrow_id> 
      <client_id></client_id> 
      <client_name></client_name> 
      <client_surname></client_surname> 
      <book_id></book_id> 
      <book_author></book_author> 
      <book_name></book_name> 
      <book_year></book_year> 
      <book_publishing></book_publishing> 
      <book_ISBN></book_ISBN> 
      <borrow_start_data></borrow_start_data> 
      <borrow_end_data></borrow_end_data> 
   </client> 
</Table>

<DataGrid Visibility="Hidden" Name="dataGrid" HorizontalAlignment="Left" Margin="0,177,0,0" VerticalAlignment="Top" Width="Auto" Height="Auto"/>

请帮帮我:)。

1 个答案:

答案 0 :(得分:0)

假设您将DataGrid属性设置为AutoGenerateColumns的可见True

<DataGrid Name="dataGrid" AutoGenerateColumns="True" .... />

然后您现有的代码应该可以正常工作。只是不要在那里创建新的DataGrid实例。只需填充上面在XAML中创建的那个:

DataSet xmlData = new DataSet();
xmlData.ReadXml("Filename", XmlReadMode.Auto);
//DataGrid dataGrid = new DataGrid();  <- don't create new one!!
dataGrid.ItemSource =                     //<- reference datagrid from your XAML
            xmlData.Tables[0].DefaultView;