Form DataGridView绑定BindingSource的几种方式
本文链接:https://blog.csdn.net/qq_15138169/article/details/83341076
在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[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的方式,其他的还有几种,大家可以自己去试一试,这两种的在实际项目中应用场景应该比较多一些。