Возникает исключение при выборе нового значения в элементе управления списком данных (выпадающее меню), встроенном в представление данных.Поле со списком заполнено BindingSource, который заполнен экземплярами моего класса.Я могу правильно отобразить параметры в меню и выбрать один, но изменение фокуса на новый элемент управления (я предполагаю, что оно фиксирует изменение) вызывает исключение: Invalid Cast из System.String в myclass.Трассировка стека (если я использую это слово справа) показывает, что источник был
System.Windows.Forms.DataGridView.PushFormattedValue, каскадно переходящий к System.Convert.DefaultToType
Более подробное объяснение приведено ниже(извините, это так долго, но я хотел сделать его воспроизводимым):
У меня есть пустой класс с именем Occupant, без свойств (проблема существует, когда Occupant также имеет строковое свойство Name, так что это не так).У меня есть BindingSource с именем OccupantSource, а его DataSource указывает на Occupant.
У меня также есть класс с именем Car, с одним свойством Occupant с именем Driver.
В моем Form_Load () я дважды вызываю OccupantSource.AddNew () и вызываю CarSource.AddNew () один раз.
У меня есть элемент управления DataGridView, DataSource которого является CarSource (BindingSource состоит изАвто).DGV имеет один столбец, отображающий свойство Driver автомобилей в CarSource.Это DataGridViewComboBoxColumn с DataPropertyName, установленным в драйвер.
Итак, я хочу показать ряды машин в Datagridview, с одним из столбцов, представляющим собой выпадающий список, который я могу раскрыть и выбрать драйвер из существующих экземпляровЖитель.Но я получаю исключение.
Это то, что я неправильно понимаю?Разве вы не можете использовать экземпляры класса для заполнения DataGridViewComboBox?