无法在datagridview c#的组合框列中添加值

时间:2012-12-14 10:00:32

标签: c# datagridview datagridviewcolumn

我有一个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);

2 个答案:

答案 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);           
    }
  }
}