Я нашел много постов, уклоняющихся от этой темы, но ни одного, которые фактически касаются этого случая.
У меня есть ComboBox, связанный с List<State>
, где State - это бизнес-объект, имеющий аббревиатуру и имясвойства:
this._stateComboBox.DataSource = ((Address)this._addressBindingSource.DataSource).States;
this._stateComboBox.DisplayMember = "Abbreviation";
this._stateComboBox.DataBindings.Add(new System.Windows.Forms.Binding("SelectedItem", this._addressBindingSource, "State"));
Изначально ComboBox отображается пустым, так как состояние не выбрано.Если я переключаюсь в ComboBox и пытаюсь выйти из него, SelectedItem имеет значение NULL, но я получаю исключение:
Object of type 'System.DBNull' cannot be converted to type 'State'.
Любая идея, почему BindingSource, кажется, принимает нулевой SelectedItemи сделать его System.DBNull, прежде чем пытаться присвоить его свойству Address.State?Это исключение возникает в OnValidating до того, как вызывается мой установщик состояний.Без отладчика похоже, что фокус застревает в ComboBox.
Я не хочу добавлять пустой объект State в мой источник данных с пустыми аббревиатурой и именем.Как я могу обойти эту проблему?