我有一个datagridview,在这个datagirdview中,我添加了两个未绑定的列,一个是组合框,第二个是文本框类型列,除此之外,我有一些行的数据表。
我正在使用我的数据表设置gird数据源,然后我尝试将值添加到组合框控件,它应该显示三个值(卡车,飞机,发货)
当网格加载时它显示存储,但在组合框中没有值,我尝试了各种方法,比如创建一个组合框数据列,并通过绑定数据表为它添加值,我也试过在设计器中添加column.items和代码,但组合框永远不会得到值。
作为实验,我也尝试通过下面的代码添加新列,但第二列也没有显示任何值。
DataGridViewComboBoxColumn dgvcbc = new DataGridViewComboBoxColumn();
DataTable dt = new DataTable();
dt.Columns.Add("Media", typeof(string));
dt.Rows.Add("Truck");
dt.Rows.Add("Car");
dgvcbc.DataSource = dt;
dgvcbc.DisplayMember = "Media";
dgvcbc.ValueMember = "Media";
this.grdDestShops.Columns.Add(dgvcbc);
答案 0 :(得分:0)
您的代码正在添加新列!如果您在设计模式中添加了ComboBox列,为什么不使用FindControl
函数找到它然后绑定它?
答案 1 :(得分:0)
认为这解决了你的问题..
namespace activator
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Media", typeof(string));
dt.Rows.Add("Truck");
dt.Rows.Add("Car");
ComboBox combo = new ComboBox();
List<string> media=(from x in dt.AsEnumerable()
select x.Field<string>(0)).ToList();
combo.DataSource = media;
dataGridView1.Controls.Add(combo);
}
}
}