Hallo,
ich verwende ein DataGridView, welches als letzte Spalte T/F verwendet, welches ich dann als DataGridViewCheckBoxCell verwende. Damit wir die Zeile als Häkchen-Spalte angezeigt. Nachdem ich nun einzeln die Häkchen setzen kann, werden die Werte anderer Spalten dieser Zeile addiert oder bei Häkchen weg subtrahiert (DataGridView_CellValueChanged). OK, soweit, nun gibt es zusätzlich ein Kontextmenü für alle Häkchen setzen oder alle Häkchen entfernen. OK, geht auch noch. Nun klicke ich mal oder verwende das Kontextmenü und versuche wieder manuell zu klicken, da ist das DataGridView nicht aktualisiert und hat in der Häkchen-Zelle noch nicht den aktuellen Wert... erst beim zweiten mal...passt aber bei mir nicht, da ich ja rechne in DataGridView_CellValueChanged. DataGridView.EndEdit, .Update oder .Refresh schon probiert. Bleibt alles beim Alten. Würde gern nur das DataGridView aktualisieren, hat jemand eine Rat?
:::
Verwendest du denn ein datengebundenes DGV (also ist DataSource
gesetzt)?
Und führst du dann die Aktionen nur im DGV aus oder in den dahinterliegenden Daten?
Wenn du das Binding verwendest kannst du mal UpdateSourceTrigger=PropertyChanged im Binding angeben damit die Änderung sofort durchgeschrieben wird. Eine andere Möglichkeit ist die Verwendung einer DataGridTemplateColumn wo du eine eigene Checkbox defibnieren kannst.
BindingSource.DataSource = this.Dataset...
this.DataGridView.DataSource = BindingSource...
so sieht es aus
Häkchen setzen oder nicht nur im DataGridView...
Erst wenn der Nutzer will, kann er speichern per Button (dort: BindingSource.EndEdit()...)
:::