Исключение переполнения стека.
Всем Привет,
У меня есть datagrid, который содержит столбец datagridCombobox в приложении windows form. Проблема в том, что при изменении значения combobox он не создает никаких исключений при загрузке формы. Но когда диалоговое окно открывается и закрывается для изменения значения другой ячейки и пытается изменить выделение в столбце datagridcombobox, оно вызывает исключение переполнения стека. При проверке с помощью трассировки стека он показывает, что событие привязки данных запускается несколько раз. Используемая Datagrid-это очень старая версия.
1-й раз, когда сетка загружается & если я пытаюсь изменить значения привязки даже не срабатывает, только после того, как диалоговое окно открыто & закрыто такая ошибка возникает.
Что я уже пробовал:
int Columnindex = GetColumnIndex(columnName + "New"); DataGridViewComboBoxCell ComboBoxCell2 = new DataGridViewComboBoxCell(); ComboBoxCell2.DataSource = null; ComboBoxCell2.DataSource = filteredOptions; ComboBoxCell2.DisplayMember = ComboboxColumn.DisplayMember; ComboBoxCell2.ValueMember = ComboboxColumn.ValueMember; ComboBoxCell2.FlatStyle = FlatStyle.Flat; ComboBoxCell2.DropDownWidth = 250;//shreyasimportant this.gdbgGrid[Columnindex, gdbgGrid.CurrentCell.RowIndex] = ComboBoxCell2; ComboBoxCell2.DisplayStyle = DataGridViewComboBoxDisplayStyle.DropDownButton; System.Diagnostics.Debug.WriteLine("UTConfig - Step - setComboBoxBasicFilteredType() ComboboxCellValue" + ComboBoxCell2.DisplayMember.ToString() + " value is- :: " + ComboBoxCell2.Value.ToString() + "" + gdbgGrid.Name); if (m_ComboDirtyStateChanged) { if (columnName != "Revision") { ComboBoxCell2.Value = Convert.ToString(filteredOptions[0][ComboboxColumn.DisplayMember]); //Commenting this line of code eliminates stack overflow exception & value is hidden in the combobox cell. Clicking the combobox cell the value appears.Need an alternative way to display the value. } } System.Diagnostics.Debug.WriteLine("UTConfig - Step8 - setComboBoxBasicFiltered() - column exists- end :: " + gdbgGrid.Name);