【问题标题】:"ADD" to DataGridView from XML file从 XML 文件“添加”到 DataGridView
【发布时间】:2013-08-04 02:58:24
【问题描述】:

我有一个 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;

【问题讨论】:

  • 有可能,是的。但是,这些文件的格式是否相同?到目前为止,您尝试过什么?
  • 它们完全一样。我在网上环顾四周,甚至不知道从哪里开始。可能插入并使用计数器?
  • 你能显示一些代码吗? XML 如何显示/绑定到 datagridview

标签: c# xml winforms linq


【解决方案1】:

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

更新

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

var Persons = new List<Person>()

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

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

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

【讨论】:

  • 这对我来说很有意义,但是我在实现时遇到了麻烦你能提供示例代码吗?
  • 保持您的代码几乎原样,只需将行 var Persons = new List&lt;Person&gt;(); 从现在的位置移动到 public class Form1 的正下方或任何您的表单名称
  • 那是我试过的“找不到类型或命名空间变量,缺少指令或程序集。”
  • 对不起,而不是var Persons = new List&lt;Person&gt;();尝试List&lt;Person&gt; Persons = new List&lt;Person&gt;();
  • 我知道,昨天一定是糟糕的一天。仍然不起作用,但我认为这是拖放的问题。我会想办法的,谢谢你的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 2021-09-30
  • 2014-08-25
  • 1970-01-01
相关资源
最近更新 更多