无法在Datagridview中查看表的所有行

时间:2015-07-21 11:49:15

标签: c# datagridview

我正在编写一个代码,其中我正在遍历包含特定文件夹结构的XML文件。我想以表格格式显示文件夹名称及其中的文件。以下是我的代码:

DataTable dtCheckPropertyOutput = new DataTable();
dtCheckPropertyOutput.Columns.Add("Property Name");

dtCheckPropertyOutput.Columns.Add("Expected value");


string folderName = null;
string fileName = null;
// display each folder
foreach (var folder in mainFolder.Elements())
{
    DataRow anyRow = dtCheckPropertyOutput.NewRow();
    folderName = folder.Attribute("Name").Value;
    MessageBox.Show(folderName);

    anyRow["Property Name"] = "Folder";

    anyRow["Expected Value"] = folderName;


    // display each file
    foreach (var file in folder.Elements())
    {
        fileName = file.Attribute("Name").Value;
        anyRow["Property Name"] = "File";
        anyRow["Expected Value"] = fileName;
    }
    dtCheckPropertyOutput.Rows.Add(anyRow);

    dataGridView1.DataSource = dtCheckPropertyOutput;

问题是我只能查看xml中的最后一个元素,但不能查看所有条目。对于例如如果xml如下所示,我只能查看文件3和文件5 [但不能查看文件夹1,文件1,文件夹2和文件2]:

<Root> 
<MainFolder Name="Main Folder">
    <Folder Name="Folder1">
        <File Name="File1" />
        <File Name="File3" />
    </Folder>
    <Folder Name="Folder2">
        <File Name="File2" />
        <File Name="File5" />
    </Folder>
</MainFolder>
</Root>

请有人帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

确定。这只是一个愚蠢的错误。我是C#的新手,我还在练习各种各样的东西。为了解决它,我刚刚在嵌套的foreach循环开始之前和嵌套的foreach循环结束之前添加了以下2行。

dtCheckPropertyOutput.Rows.Add(anyRow);
anyRow = dtCheckPropertyOutput.NewRow();

我不确定,但请纠正我并让我知道是否有更好的方法。