簡體   English   中英

在DataGridView中將值設置為ComboBoxCell

[英]Set value to ComboBoxCell in DataGridView

我想為實際上是comboboxcell的單元格設置一個值。 我為另一個項目完成了它,但是現在以同樣的方式,行不通!

這是我的代碼

        //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;

}

錯誤是

在此處輸入圖片說明

您的數據綁定部分還可以。 問題出在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是數據綁定的,所以您必須通過ValueMember設置值,在我的情況下是items[1].Id 您也必須在代碼中做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM