c# - "ADD"从 XML 文件到 DataGridView

标签 c# xml winforms linq

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

    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;

最佳答案

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

更新

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

var Persons = new List<Person>()

超出此代码范围的某处(例如,使其成为全局 Form 变量)。这样每次你调用你的

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

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

关于c# - "ADD"从 XML 文件到 DataGridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18023666/

相关文章:

c# - 可以通过navicat连接mysql数据库但不能从c#应用程序

xml - 哪些浏览器支持 Xpath 2.0?

android - Android解析XML文件获取特定数据

c# - SignalR C# 客户端 407 需要代理身份验证

winforms - 'Cancel' 按钮是否应该用作 Windows 窗体上的 'Close' 按钮?

c# - 避免 LINQ 中的重复

c# - 如何将数据从一个数据库导入到另一个数据库

c# - 为 Treeview 和 TreeNode 传递通用参数

android - android studio 不识别 Activity 继承

c# - 如何使用方法 async Task<string> 并返回字符串,然后如何将该方法的委托(delegate)传递给构造函数并在以后使用它?