Удаление элемента из BindingList не обновляет DataGridViewComboBoxCell - PullRequest
0 голосов
/ 04 января 2012

У меня есть DataGridView, где есть ячейка, которая является DataGridViewComboCell.Каждый DataGridViewComboCell связан с уникальной копией BindingList.Когда я удаляю элемент из списка привязок, выпадающие списки удаляют запись, которую я удалил из списка привязок.
Однако, если выбрано это значение, оно остается выбранным элементом в ячейке.

Я попытался сделать datagridview.refresh (), но это все равно не помогло.Он вызывается из пункта меню полосы инструментов

  // _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();          

1 Ответ

1 голос
/ 04 января 2012

Несколько вещей, на которые стоит обратить внимание / посмотреть:

1) Вам не нужно вызывать EndEdit после обновления.Если он должен быть вызван, вы должны вызвать его до Refresh.

2) Если ваши выпадающие списки имеют DropDownStyle of DropDown, тогда я ожидаю такого поведения.

Из документации MSDN :

Если для свойства DropDownStyle установлено значение DropDown, вы можете ввести любое значение в редактируемой области ComboBox.

Чтобы изменить это, измените DropDownStyle на DropDownList или вручную удалите значение в коде после удаления элементов.

...