Ich will eine im DataGridView eine ComboBox zeilenweise in Abhängigkeit von Werten in einer anderen Spalte füllen. Dazu habe ich bei Form_Load die Liste von Objekten eingelesen und die BindingSource festgelegt.
Timings = inOut.ReadTiming(Timings, Presettings);
BindingSourceTiming.DataSource = Timings;
...
DataGridViewTiming.Columns[2].Name = "Nummer";
DataGridViewTiming.Columns[3].Name = "NumBesch";
...
DataGridViewTiming.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(DataGridViewTiming_DataBindingComplete);
Schließlich rufe ich das DataBindingComplete-Event auf, wo ich die ComboBoxen zeilenweise befülle. Damit überschreibe ich die Einstellung der Column 3.
private void DataGridViewTiming_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
for (int loop = 0; loop < Timings.Count; loop++)
{
DataGridViewComboBoxCell cbCell = (DataGridViewComboBoxCell)DataGridViewTiming.Rows[loop].Cells["NumBesch"];
if (Timings[loop].Typ == Lichtquelle.Relais)
{
Timings[loop].Nummer = Relaises[Timings[loop].Nummer].RelaisNummer;
Timings[loop].NumBesch = Relaises[Timings[loop].Nummer].RelaisNumBesch;
if (cbCell != null)
{
cbCell.DataSource = BindingSourceRelais;
cbCell.DisplayMember = "RelaisNumBesch";
cbCell.ValueMember = "RelaisNummer";
}
}
else
{
Timings[loop].Nummer = Leds[Timings[loop].Nummer].LedNummer;
Timings[loop].NumBesch = Leds[Timings[loop].Nummer].LedNumBesch;
if (cbCell != null)
{
cbCell.DataSource = BindingSourceLed;
cbCell.DisplayMember = "LedNumBesch";
cbCell.ValueMember = "LedNummer";
}
}
}
}
Fehler |
System.FormatException: Der DataGridViewComboBoxCell-Wert ist ungültig. |
private void DataGridViewTiming_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
}
Trotzdem muss es einen Fehler bei der ComboBoxCell geben. Kann mir da jemand helfen?