1

我想为实际上是组合框单元格的单元格设置一个值。我为我的另一个项目完成了它,但现在以同样的方式,不起作用!

这是我的代码

        //dgExcel is my datagridview

        var cmb = (DataGridViewComboBoxColumn)dgExcel.Columns[1];
        cmb.DataSource = sucTurleri; //its a list 
        cmb.DisplayMember = "SucTuru";
        cmb.ValueMember = "Id";

这段代码正在向网格中添加行

var Konumlar = ExcelYardimcisi.KonumlariExceldenAl(dg.FileName);

foreach (var konum  in Konumlar)
{

  dgExcel.Rows.Add(konum.KonumAdi, sucTurleri[0].SucTuru, DateTime.Now.ToShortDateString());
}

但我遇到了一个错误,我用了这个

 foreach (var konum  in Konumlar)
 {

  dgExcel.Rows.Add(konum.KonumAdi, null, DateTime.Now.ToShortDateString());

  DataGridViewComboBoxCell cbox = (DataGridViewComboBoxCell)dgExcel.Rows[dgExcel.Rows.Count - 1].Cells[1];

   cbox.Value = sucTurleri[0].SucTuru;

}

错误是

在此处输入图像描述

4

1 回答 1

2

您的数据绑定部分非常好。问题在于dgExcel.Rows.Add()方法。这是一个示例代码:

    List<Item> items = new List<Item>();
    items.Add(new Item() { Name = "One", Id = 1 });
    items.Add(new Item() { Name = "Two", Id = 2 });
    var cbo = dataGridView1.Columns[1] as DataGridViewComboBoxColumn;
    cbo.DataSource = items;
    cbo.ValueMember = "Id";
    cbo.DisplayMember = "Name";

    dataGridView1.Rows.Add("test", items[1].Id);
    ...

    public class Item
    {
        public string Name { get; set; }
        public int Id { get; set; }
    }

因为是数据绑定,所以在我的情况下DataGridViewComboBoxColumn,您必须设置值。你也必须在你的代码中这样做。ValueMemberitems[1].Id

于 2013-12-26T22:33:27.120 回答