DataGridView에는 DataGridViewComboCell 인 셀이 있습니다. 각 DataGridViewComboCell은 BindingList의 고유 복사본에 바인딩됩니다. 바인딩 목록에서 항목을 제거하면 comboboxes는 바인딩 목록에서 제거한 항목을 제거합니다.
그러나 값을 선택하면 셀의 선택된 항목으로 유지됩니다.BindingList에서 항목을 제거해도 DataGridViewComboBoxCell이 새로 고쳐지지 않습니다.
나는 datagridview.refresh()를 시도했지만 여전히 도움이되지 못했습니다.
1) 당신은 새로 고침 후에지며 EndEdit를 호출 할 필요가 없습니다 : 그것은
// _contractLists is List<BindingList<String>> which is the datasource for a datagridviewcombobox
List<String> removedList = new List<string>();
_contractSelForm.ShowDialog();
_contractSelForm.GetandClearRemovedContracts(ref removedList);
foreach (BindingList<String> contractList in _contractLists)
{
// remove deleted favorites
foreach (string contract_name in removedList)
{
contractList.Remove(contract_name);
}
}
dataGridView1.Refresh();
dataGridView1.EndEdit();
올바른 이벤트에서 바인딩을 이동하거나 변경하고 있습니까? 당신이 사용하고있는 코드를 붙여 넣을 수 있습니까? 또한 datagridview.Bind() 또는 바인딩 뭔가 보길 들리는데 .. 그냥 코드를 보지 않고 여기에 맞춰 짐 – MethodMan
BindingList를 콤보 상자 열에 바인딩하는 방법을 보여줄 수 있습니까? dataGridView1은 가상 모드입니까? – Kimberly