C# WinForm DataGridView绑定BindingSource的几种方式

时间:2024-03-17 09:01:35

在WinForm的开发中,ListView和DataGridView应用的场景都比较,初学的时候绑定数据都是用最简单的一种方式去实现


private void NormalAdd()
{
     dataGridView1.Rows.Clear();
     for (int i = 0; i < 10; ++i)
     {
         int index = dataGridView1.Rows.Add();
         dataGridView1.Rows[index].Cells[0].Value = i+"elem1";
         dataGridView1.Rows[index].Cells[1].Value = i+"elem2";
         dataGridView1.Rows[index].Cells[2].Value = i+"elem3";
         dataGridView1.Rows[index].Cells[3].Value = i+"elem4";
     }
}

上面的方法其实是最直观的,但是微软还提供其他几种比较优雅一些的方式去绑定数据,就是通过BindingSource来实现,BindingSource看名字就知道干啥用的了。废话不多说,先发代码,在解释。

public List<ItemBean> list = new List<ItemBean>();
private void dataList()
{
    for (int i = 0; i < 10; ++i)
    {
        ItemBean item = new ItemBean();
        item.postion = i.ToString();
        item.item1 = "Listitem1-" + i;
        item.item2 = "Listitem2-" + i;
        item.item3 = "Listitem3-" + i;
        list.Add(item);
    }
    bindingSource1.DataSource = list;
    //DataGridView的列name和对象成员的绑定
    dataGridView1.Columns["Column1"].DataPropertyName = "postion";
    dataGridView1.Columns["Column2"].DataPropertyName = "item1";
    dataGridView1.Columns["Column3"].DataPropertyName = "item2";
    dataGridView1.Columns["Column4"].DataPropertyName = "item3";
}
public class ItemBean
{
    public string postion { get; set; }
    public string item1 { get; set; }
    public string item2 { get; set; }
    public string item3 { get; set; }
}

这种是List数据源方式实现绑定


public DataTable dt = new DataTable("ITEMBEAN");
private void dataTable()
{
    dt.Columns.Add("POS", typeof(string));
    dt.Columns.Add("ITEM1", typeof(string));
    dt.Columns.Add("ITEM2", typeof(string));
    dt.Columns.Add("ITEM3", typeof(string));
    for (int i = 0; i < 10; ++i)
    {
        DataRow dr = dt.NewRow();
        dr[0] = i.ToString();
        dr[1] = i.ToString() + "_Table单元1";
        dr[2] = i.ToString() + "_Table单元2";
        dr[3] = i.ToString() + "_Table单元3";
        dt.Rows.Add(dr);
    }
    bindingSource1.DataSource = dt;
    dataGridView1.Columns["Column1"].DataPropertyName = "POS";
    dataGridView1.Columns["Column2"].DataPropertyName = "ITEM1";
    dataGridView1.Columns["Column3"].DataPropertyName = "ITEM2";
    dataGridView1.Columns["Column4"].DataPropertyName = "ITEM3";
}

这个的是DataTable的方式,其他的还有几种,大家可以自己去试一试,这两种的在实际项目中应用场景应该比较多一些。

 

C# WinForm DataGridView绑定BindingSource的几种方式

 

写C#1个来月,比较粗浅,做个记录