2016-05-16 1 views
0

DataGridViewのDataPropertyNameをバインドすると、DataGridViewにデータソースバインディングがあります。ComboBoxはクリックできません。winforms DataGridViewComboBoxColumn、DataPropertyNameが設定されているときにComboBoxをクリックできません

dgFMS.ReadOnly = false; 

正しいDataPropertyNameは、各行と結合されているが、私は、ドロップダウン

BindingSource _bsCats2 = new BindingSource(); 
DataGridViewComboBoxColumn catCol = new DataGridViewComboBoxColumn(); 
_bsCats2.DataSource = CategoryManager.Categories.Select(x => new { 
    Key = x.ParentWithName.ToLowerInvariant(), 
    Value = x.Id }) 
    .ToList(); 
catCol.DataSource = _bsCats2; 
catCol.DataPropertyName = "catID"; 
catCol.DisplayMember = "Key"; 
catCol.ValueMember = "Value"; 
catCol.Width = 250; 
catCol.ReadOnly = false; 
dgFMS.Columns.Add(catCol); 
dgFMS.ReadOnly = false; 

私も同様に私は問題を発見した

private void dgFMS_EditingControlShowing(object sender, 
    DataGridViewEditingControlShowingEventArgs e) 
{ 
    ComboBox cb = e.Control as ComboBox; 
    if (cb != null) 
    { 
     cb.DropDownStyle = ComboBoxStyle.DropDown; 
     cb.SelectedValueChanged -= new EventHandler(CmbCat_SelectedIndexChanged); 
     cb.SelectedValueChanged += new EventHandler(CmbCat_SelectedIndexChanged); 
    } 
} 

答えて

0

dgFMS_EditingControlShowingを実装していますから選択することはできませんバインディングデータ

DataPropertyName = "catID"広告専用プロパティのセッターを追加することによって、この

public int catID 
    { 
     get 
     { 
      return CategoryManager.Categories.FirstOrDefault(x => x.Name.Equals(SubCategory, StringComparison.InvariantCultureIgnoreCase)).Id; 
     } 
    } 

のようなセッターのない唯一のゲッターを持つプロパティは、問題を解決しました。

関連する問題