Form DataGridView绑定BindingSource的几种方式

Posted wfy680

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Form DataGridView绑定BindingSource的几种方式相关的知识,希望对你有一定的参考价值。

 

本文链接:https://blog.csdn.net/qq_15138169/article/details/83341076

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

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

dataGridView1.Rows[index].Cells[2].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的方式,其他的还有几种,大家可以自己去试一试,这两种的在实际项目中应用场景应该比较多一些。



以上是关于Form DataGridView绑定BindingSource的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

windo form 窗体布局方式

20161014006 DataGridView Combobox 数据绑定与传值

在windows form应用程式里添加了一个DataGridView,DataGridView的大小固定,里面的表头和内容动态添加

隐藏DataGridView中的行,绑定在我的项目中不起作用

Winform中DataGridView网格添加ComBoBox

C#dataGridView中数据放到另一个窗体的textbox中,急急急