How to add data to DataGridView

2020-03-02 13:51发布

I'm having a Structure like

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

How to dump this data to a DataGridView of two columns

The gridView is like

ID | Name

Can we use LINQ to do this. I'm new to DataGridView Pleaese help me to do this..

Thanks in advance

5条回答
唯我独甜
2楼-- · 2020-03-02 14:18

you shoud do like this form your code

DataGridView.DataSource = yourlist;

DataGridView.DataBind();

查看更多
仙女界的扛把子
3楼-- · 2020-03-02 14:21

Let's assume you have a class like this:

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

And assume you have dragged and dropped a DataGridView to your form, and name it dataGridView1.

You need a BindingSource to hold your data to bind your DataGridView. This is how you can do it:

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;
}
查看更多
神经病院院长
4楼-- · 2020-03-02 14:30

first you need to add 2 columns to datagrid. you may do it at design time. see Columns property. then add rows as much as you need.

this.dataGridView1.Rows.Add("1", "XX");
查看更多
倾城 Initia
5楼-- · 2020-03-02 14:36

LINQ is a "query" language (thats the Q), so modifying data is outside its scope.

That said, your DataGridView is presumably bound to an ItemsSource, perhaps of type ObservableCollection<T> or similar. In that case, just do something like X.ToList().ForEach(yourGridSource.Add) (this might have to be adapted based on the type of source in your grid).

查看更多
在下西门庆
6楼-- · 2020-03-02 14:43

My favorite way to do this is with an extension function called 'Map':

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

Then you can add all the rows like so:

X.Map(item => this.dataGridView1.Rows.Add(item.ID, item.Name));
查看更多
登录 后发表回答