如何将数据添加到DataGridView

我有一个类似的结构

X={ID="1", Name="XX", ID="2", Name="YY" }; 

如何将此数据转储到两列的DataGridView

gridView就像

ID | Name

我们可以使用LINQ来做到这一点。 我是DataGridView新手Pleaese帮我做这个..

提前致谢

首先,您需要向datagrid添加2列。 你可以在设计时做。 请参阅Columns属性。 然后根据需要添加行。

 this.dataGridView1.Rows.Add("1", "XX"); 

我们假设您有一个这样的类:

 public class Staff { public int ID { get; set; } public string Name { get; set; } } 

并假设您已将DataGridView拖放到表单中,并将其命名为dataGridView1。

您需要一个BindingSource来保存数据以绑定DataGridView 。 这是你如何做到的:

 private void frmDGV_Load(object sender, EventArgs e) { //dummy data List lstStaff = new List(); lstStaff.Add(new Staff() { ID = 1, Name = "XX" }); lstStaff.Add(new Staff() { ID = 2, Name = "YY" }); //use binding source to hold dummy data BindingSource binding = new BindingSource(); binding.DataSource = lstStaff; //bind datagridview to binding source dataGridView1.DataSource = binding; } 

我最喜欢的方法是使用名为“Map”的扩展函数:

 public static void Map(this IEnumerable source, Action func) { foreach (T i in source) func(i); } 

然后你可以像这样添加所有行:

 X.Map(item => this.dataGridView1.Rows.Add(item.ID, item.Name)); 

LINQ是一种“查询”语言(即Q),因此修改数据超出了其范围。

也就是说,您的DataGridView可能绑定到ItemsSource ,可能是ObservableCollection类型或类似。 在这种情况下,只需执行类似X.ToList().ForEach(yourGridSource.Add) (这可能必须根据网格中的源类型进行调整)。

你应该像这样形成你的代码

DataGridView.DataSource = yourlist;

DataGridView.DataBind();