如何将数据添加到 DataGridView

Posted

技术标签:

【中文标题】如何将数据添加到 DataGridView【英文标题】:How to add data to DataGridView 【发布时间】:2011-04-24 19:08:46 【问题描述】:

我有一个类似的结构

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

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

gridView 是这样的

ID | Name

我们可以使用 LINQ 来执行此操作吗?我是 DataGridView 的新手,请帮我做这件事..

提前致谢

【问题讨论】:

网络表单?表格? wpf?银光? 【参考方案1】:

首先您需要向数据网格添加 2 列。您可以在设计时进行。请参阅列属性。 然后根据需要添加行。

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

【讨论】:

我在设计时添加了两列。现在我需要在 grid view 中显示数据 谢谢...我需要遍历结构。所以我必须使用forforeach 循环。我们可以为此使用LAMBDA 表达式吗? 是的。有很多选择。我想您可能会使用数据绑定作为最好的方法【参考方案2】:

假设你有这样一个类:

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<Staff> lstStaff = new List<Staff>();
    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;

【讨论】:

您不需要绑定源。您可以将列表直接分配给网格数据源。 是的,我们不需要绑定源,我们可以直接将列表绑定到网格的数据源。使用 bindingsource 的优点是,如果列表已更改/更新,我们可以稍后刷新绑定源。网格也会得到刷新。 使用 System.ComponentModel.BindingList 以便列表通知 DataGridView 添加了一个项目等。【参考方案3】:

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

public static void Map<T>(this IEnumerable<T> source, Action<T> func)

    foreach (T i in source)
        func(i);

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

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

你应该在你的代码中这样做

DataGridView.DataSource = 你的列表;

DataGridView.DataBind();

【讨论】:

以上是关于如何将数据添加到 DataGridView的主要内容,如果未能解决你的问题,请参考以下文章

如何将行动态添加到表格布局中

如何将消息添加到数据表分页行

如何将书签添加到 UITableViewCell 并保存到核心数据?

如何将数据添加到 DataGridView

如何将用户添加到 Firebase 数据库 [重复]

如何手动将核心数据添加到项目中?