MrDysprosium MrDysprosium - 1 month ago 7
C# Question

Using DataGridView, how can I allow users to change a property of record in its DataSource?

I have a list of

Record
objects that serve as rows in my DataGridView.
Each
Record
has a new bool value
Helped
. Sure enough, this new value shows up as check mark in my form.

As it stands currently, when this box is checked it doesn't seem to change the value of
Helped
bool in the corresponding
Record
.

Is there some sort of read-only property I need to change? How do I pass a click on my form back as a change in value of its
DataSource
?

Edit: I've found the
System.Windows.Forms.DataGridViewEditMode.EditOnEnter
property, but I'm still not seeing my
Record.Helped
property get updated.

Answer

As it stands currently, when this box is checked it doesn't seem to change the value of Helped bool in the corresponding Record.

The changes which you make on a cell of DataGridView, doesn't commit immediately to the data source until you finish editing the cell, then changes will be pushed to data source. If for any reason you want to push changes sooner, you can call:

dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);

For example you can do that in CellContentClick event of your DataGridView to push check box value to the underlying property of data source.

Comments