Я использую datagridview combobox для проблем и проблем с sub. При выборе проблем его подзадача combobox datasource заполняется по задаче. Datagridview combobox не обновляется
Для обновления к югу проблемы я использую
private void dataGridView2_CellValueChanged_1(object sender, DataGridViewCellEventArgs e)
{
try
{
if (e.ColumnIndex == dataGridView2.Columns[8].Index && e.RowIndex>-1)
{
DataGridViewComboBoxCell cell = dataGridView2.Rows[e.RowIndex].Cells[dataGridView2.Columns["KeyProblemDescription"].Index] as DataGridViewComboBoxCell;
if (cell == null)
return;
Guid primaryProblem = new Guid(dataGridView2.Rows[e.RowIndex].Cells[dataGridView2.Columns["PrimaryKeyProblem"].Index].Value.ToString());
cell.DataSource = dbCalling.getPrimaryKeyProblemDescription(primaryProblem);
cell.DisplayMember = "Name";
cell.ValueMember = "Id";
}
}
catch (Exception)
{
}
}
public DataTable getPrimaryKeyProblemDescription(Guid keyProblem)
{
try
{
using (SqlCommand com = new SqlCommand(@"SELECT [Id] ,[KeyProblemDescription] as Name
FROM [KeyProblemDescription] where [PsfKeyProblemId][email protected] "))
{
com.Parameters.AddWithValue("@keyProblem", keyProblem);
return selectDataTable(com);
}
}
catch (Exception e)
{
throw e;
}
}
public DataTable selectDataTable(SqlCommand com)
{
try
{
DataTable datatable = new DataTable();
using (SqlConnection con = new SqlConnection(connectionString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
com.Connection = con;
sda.SelectCommand = com;
con.Open();
sda.Fill(datatable);
return datatable;
}
}
}
catch (Exception ex)
{
throw ex;
}
}
Its работает нормально, когда я сначала выбрать проблему, но в случае, когда я извлечение проблемы и суб проблемы из базы данных ее давая исключение DataGridView выпадающего значения проблемы саба не действительный. Причина этого заключается в том, что источник данных не зависит от проблемы. Как я могу избавиться от этого.
Редактировать
Когда я чуствую DataSource событие изменения значения ячейки обжигают для индекса строки -1 только, почему так ?? не для 1,2,3 .....
что такое тип getPrimaryKeyProblemDescription? BindingList? вы можете показать код getPrimaryKeyProblemDescription? –
kain64b
, пожалуйста, проверьте мои изменения .. –
попытайтесь добавить обновление вручную: cell.DisplayMember = "Name"; cell.ValueMember = "Id"; cell.Items.Refresh(); – kain64b