2016-06-24 4 views
0

У меня есть datagridview на вкладке. datagridview имеет 6 столбцов. 6-й столбец - это comboboxcolumn. Я пытаюсь связать источник данных с comboboxcells. Каждая строка будет иметь разные источники данных на основе номера строки. В datagridview будет всегда 10 строк. Проблема заключается в том, что выпадающие списки не заполняют никаких значений. Это просто дает мне пустой элемент. Оба источника данных datagrid и comboboxcolumn отображают значения таблиц данных, если я сохраняю точки останова. Может ли кто-нибудь сказать мне, что мне здесь не хватает?DataGridViewComboBoxColumn не заполняет значения из источника данных

private void BuildFreshAccessMatrix() 
    { 
     dataGridView1.AutoGenerateColumns = false; 
     DataGridViewComboBoxColumn cboPermissionCol = (DataGridViewComboBoxColumn)dataGridView1.Columns[5]; 
     //cboPermissionCol.DataPropertyName = "UserLevelCategoryName"; 
     dataGridView1.DataSource = dataProvider.GetBlankMatrixData(); 
     int i = 1; 


     foreach (DataGridViewRow row in dataGridView1.Rows) 
     { 
      DataGridViewComboBoxCell cboPermission = (DataGridViewComboBoxCell)(row.Cells["UserLevelCategoryNameAdd"]); 
      cboPermission.DataSource = dataProvider.GetPermissionComboData(i); 
      cboPermission.DisplayMember = "UserLevelCategoryName"; 
      cboPermission.ValueMember = "UserLevelCategoryName"; 
      i += 1; 

     } 
    } 
+0

Отладка 'dataProvider.GetPermissionComboData (я)' дает вам нужное количество элементов и права тип? – Shago

+0

Да. Это дает мне правильную таблицу данных. – Saranya

ответ

0

Попробуйте изменить код:

DataGridViewComboBoxCell cboPermission = (DataGridViewComboBoxCell) 
dataGridView1.Rows[i].Cells["UserLevelCategoryNameAdd"]; 

вместо:

DataGridViewComboBoxCell cboPermission = (DataGridViewComboBoxCell) 
(row.Cells["UserLevelCategoryNameAdd"]); 
Смежные вопросы