I have a unbound DataGridView with 6 columns, the first being a DataGridCheckBoxColumn. When a user clicks on a checkbox cell, I want to determine what cells have been checked and what ones are not. Here is my code:

```
private void UpdateSelectedPlaces()
{
    //Clear out the places list each time the user selects a new item (or items)
    _selectedPlaces.Clear();

    foreach (DataGridViewRow row in placesGridView.Rows)
    {
        if (row.Cells[0].Value != null && row.Cells[0].Value.Equals(true))
        {
            _selectedPlaces.Add((TripPlace)row.DataBoundItem);
        }
    }
}
//Click event handler
private void placesGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    UpdateSelectedPlaces();
}

```

**I am finding that the DataGridCheckBoxCells are not holding the correct value at the time of the click**. This occurs for all rows. There seems to be no pattern really. I was hoping that the event was just not called at the right time (I.e. the checking of the checkbox was yet to be completed) but I cannot prove that. 

**In short, even though the GUI displays a checked checkbox, the back end thinks the checkbox is not checked when using `.Value`** Is there a simpler way to just determine if each cell[0] is checked or not checked in a datagridview?