【问题标题】:How to insert data from list array to datagridview?如何将数据从列表数组插入到datagridview?
【发布时间】:2017-10-08 14:46:00
【问题描述】:

我需要将数组中的数据插入到DataGridView,但是当我从列表中处理DataGridView 时,我得到的只是数组中元素的计数。

public static class Globalne
{
   public static List<string> Mena = new List<string>();
   public static string[] stringy = { "1", "2", "3", "4", "5" };
}

这是程序

private void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.ColumnCount = 3;
    dataGridView1.Columns[0].Name = "Name";
    dataGridView1.Columns[1].Name = "Surname";
    dataGridView1.DataSource =  Globalne.stringy;
}

【问题讨论】:

  • 您定义了 3 列来显示无法绑定到任何这些列的字符串数组。你能指望什么?你要做什么?
  • 我想将数组列表插入一列

标签: c# .net winforms data-binding datagridview


【解决方案1】:

要解决此问题,请考虑以下注意事项:

  • 要将DataGridView 绑定到字符串数组,您应该将数组调整为包含属性的List
  • DataGridView 的每一列都将显示与该列的DataPropertyName 具有相同属性名称的DataSource 的属性值。

示例

string[] stringy = { "A", "B", "C", "D", "E" };
dataGridView1.Columns.Add("C1", "Header 1");
dataGridView1.Columns["C1"].DataPropertyName = "Property1";
dataGridView1.Columns.Add("C2", "Header 2");
dataGridView1.DataSource = stringy.Select(x => new { Property1 = x }).ToList();

结果如下:

【讨论】:

  • 这正是我想要的!非常感谢!
  • 一般来说,我建议您使用BindingList&lt;T&gt;DataTable 来编辑DataGridView 中的数据,而不是这样的数组。
  • 但是我怎样才能使下一列和另一个列表数组相同呢?当我尝试某些东西时,我得到的就是重写第一列,最后一行是什么?
  • DataGridView 的每一列都将显示DataSource 的属性值,该属性名称与列的DataPropertyName 具有相同的属性名称。例如,对于第二列,将其数据属性名称设置为Property2,然后在塑造字符串列表时,选择`new { Property2 = x}. That's why I told you it's better to use BindingList` 或DataTable 而不是数组。
猜你喜欢
  • 2014-01-06
  • 2023-03-22
  • 1970-01-01
  • 2022-06-16
  • 2012-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多