Hallo,
ich habe eine DataGridView mit einer Spalte vom Typ checkbox. Das DataGridView ist an eine DataTable gebunden.
Wenn ich jetzt die checkbox anklicke übernimmt der den gänderten Wert (es müsste jetzt eine 1 in der DataTable stehen) nicht. Dies geschiht erst wenn ich eine andere zelle im DGV anklicke.
Wie kann ich das Problem lösen? Danke!
Mir fällt aktuell nur eine Möglichkeit ein, und das wäre das Erstellen einer eigenen CheckBoxColumn wo du im EditingControl das OnCheckedChanged Event der CheckBox überschreibst und dabei den Wert direkt in die Zelle schreibst:
if(EditingControlDataGridView != null)
{
EditingControlDataGridView.CurrentCell.Value = this.Checked;
}
(das EditingControl leitet dabei von CheckBox und IDataGridViewEditingControl ab, this.Checked bezieht sich also auf die .Checked-Property der Checkbox)
Zusatzinfo:
EditingControlDataGridView ist eine Property von IDataGridViewEditingControl
Hallo,
eventuell reicht auch schon der Aufruf von EndEdit() des DataGridView's.
sg
Hallo,
ich habe es bei mir so gemacht:
private void datagridview1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (datagridview1.CurrentCell is DataGridViewCheckBoxCell)
datagridview1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
Gruß
Steffen