2

我有一个winForm,我将一个xml文件拖到上面,并用文件的内容填充datagridview。这很好用,我现在想要完成的是;一旦第一个文件被加载到视图中,我希望能够拖动另一个文件并将其添加到视图的末尾或开头。因此,简而言之,我希望能够拖动多个文件并将它们全部显示在视图中。这可能吗?谢谢

    var Persons = new List<Person>();
        var lst = new List<Person>();
        var xml = XDocument.Load(fileName);
        var NewPerson = from person in xml.Descendants("Person")
                           from jobs in person.Descendants("Jobs")
                           from job in jobs.Descendants("Job")
                           select new Person
                           {
                               FirstName = person.Element("FirstName").Value,
                               JobTitle = job.Element("JobTitle").Value,
                           };


            foreach (var data in NewPerson)
            {
                Persons.Add(data);                         
            }

            dataGridView1.DataSource = Persons;
4

1 回答 1

0

如果将 XML 文件加载到 ADO.NET DataTable 中,则可以将连续文件加载到临时 DataTable 中,然后使用DataTable.Merge方法合并多个数据。

更新

根据您的代码,该方法更加容易。只需声明

var Persons = new List<Person>()

此代码范围之外的某个地方(例如,使其成为全局表单变量)。这样每次你打电话给你的

foreach (var data in NewPerson)
{
   Persons.Add(data);                         
}

它会将项目添加到已由先前加载填充的列表中。

于 2013-08-02T21:26:52.607 回答