DataGridView and BindingSource

本文关键字:BindingSource and DataGridView | 更新日期: 2023-09-27 18:15:04

我有DataGridView绑定到源:

BindingSource bdSource = new BindingSource();
bdSource.DataSource = db.Girls.Where(g=>g.BoobsSize == "C").ToList();
dataGridView1.DataSource = bdSource;

我想在DataGridView上只显示'Age'和'Name'列,但保持其他字段绑定到TextBoxes。

txt_Name.DataBindings.Add(new Binding("Text", bdSource, "Name"));
txt_Age.DataBindings.Add(new Binding("Text", bdSource, "Age"));
txt_Phone.DataBindings.Add(new Binding("Text", bdSource, "Phone"));
//.. other TextBoxes bound to the same BindingSource

怎么做?是否与DataMember有关?

DataGridView and BindingSource

解决方案是添加:

dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = bdSource;
dataGridView1.Columns[0].DataPropertyName = "Age";
dataGridView1.Columns[1].DataPropertyName = "Name";

dataGridView1.AutoGenerateColumns = false应该在分配数据源之前。