0

我有一个datagridview,在这个datagirdview中,我添加了两个未绑定的列,一个是组合框,第二个是文本框类型的列,除此之外,我还有一些行的数据表。

我正在用我的数据表设置网格数据源,然后我试图向组合框控件添加值,它应该显示三个值(卡车、飞机、船舶)

当网格加载时它显示商店,但组合框中没有值,我尝试了各种方法,例如创建组合框数据列并通过绑定数据表向其添加值,我还尝试通过在设计器和代码中添加 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);
4

2 回答 2

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);           
    }
  }
}
于 2012-12-14T12:26:42.657 回答
0

您的代码正在添加一个新列!,如果您在设计模式中添加了一个 ComboBox 列,为什么不使用FindControl函数找到它然后绑定它?

于 2012-12-14T11:08:05.983 回答