0

我正在嘗試使用WinFormsdevexpressCheckedComboBoxEdit添加到GridView。這是我得到了現在:CheckedComboBoxEdit已創建但無法使用

using (var _db = new DB()) 
{ 
    var isemirleri = _db.IsEmris.AsQueryable(); 
    var oalist = _db.OperasyonAksakliks.AsQueryable(); 

    gcIsEmirleri.DataSource = 
    (from i in isemirleri 
     select new { 
      ID = i.isEmriId, 
      İşEmriNo = i.isEmriNo, 
      Aksaklık = string.Join(",", 
       oalist 
       .Where(o => o.operasyonId == i.Operasyons.FirstOrDefault().operasyonId) 
       .Select(o => o.Durus.durusAdi).ToList()) 
     }).ToList(); 


    gvIsEmirleri.BeginUpdate(); 

//------------------------ THIS LINE -------------------------------------\\ 
    //DataColumn col = new DataColumn("Aksaklık", typeof(string)); 
//------------------------ THIS LINE -------------------------------------\\ 
    GridColumn column = gvIsEmirleri.Columns["Aksaklık"]; 
    column.Caption = "Aksaklık"; 
    column.Name = "Aksaklık"; 

    gvIsEmirleri.EndUpdate(); 

    RepositoryItemCheckedComboBoxEdit chk= new RepositoryItemCheckedComboBoxEdit(); 
    chk.Items.Clear(); 
    foreach (Durus d in _db.Durus.Where(q => q.aksaklikMi == true)) 
     chk.Items.Add(new ListItem(d.durusId, d.durusAdi)); 
    chk.EditValueChanged += new EventHandler(chk_EditValueChanged); 
    gvIsEmirleri.Columns["Aksaklık"].ColumnEdit = chk; 
} 

它成功地顯示了本Operasyons與之間逗號和CheckedComboBoxEdit S可對電網(它顯示在單元格右邊的小按鈕)可以看出。

但是,單擊單元格時不顯示元素列表。我調試了該項目並觀察到chk已正確設置,並保留了Items的意思。

如果我去評論我標記爲THIS LINE線和不加AksaklıkgcIsEmirleri.DataSource它成功添加列表,並可以正常使用了,我可以添加選中的元素到相關的數據庫表,但我不能查看視圖中的更改。我的意思是我看不到選定的元素,如字符串組合或在行中檢查。

我在做什麼錯,或者我能做些什麼來使它工作?

回答

0

Aksaklık必須創建一次。添加新的GridColumn並指定DataSource會導致程序無法正常工作。

因此,我創建了一個新列,同時指定DataSource(名爲TempColumn),將其設置爲false。之後,我添加了GridColumn並按照問題中的代碼執行操作。之後我用UnboundTypeTempColumn得到所需的字符串:

column.UnboundType = DevExpress.Data.UnboundColumnType.String; 
column.UnboundExpression = "[TempColumn]";