Scusa ma non ti seguo quasi più….
se stai lavorando con un dataSet, bindingSource tableAdapter e dataGridView, la questione non si pone nel momento in cui esegui :
BindingSource.Remove
TableAdapter.Update
dataSet.AcceptChanges
quindi una volta rimossa la riga dal Binding si riflette l'aggiornamento sull' Adapter con l'Update per aggiornare la tabella e accettare con il Change
in questa logica non devi fare nulla perchè i metodi fanno tutto loro e lo fanno bene.
25/09/2023 - Jan ha scritto:
Sto cercando di applicare ACCEPTCHANGE sul solo elemento da cancellare e poter quindi rimandare ad una successiva fase l'acceptchange sugli altri elementi modificati/aggiunti.
Un alternativa che non sconvolge la logica di cui sopra, può essere quella di inserire una colonna in più nella dataGridView con il Check di tipo booleano.
A questo punto metterai la spunta sul Flag per contrassegnare che tali righe verranno eliminate
Poi quando vuoi eseguire effettivamente la cancellazione delle righe contrassegnate, allora eseguirai una Enumerazione delle righe contrassegnate e richiamerai dopo l'EndEdit … il Remove , l'Update e l'AcceptChange.
In questo modo non devi fare nulla di anomalo rispetto alla logica preesistente.
In questo caso se non vuoi vedere le righe contrassegnate, se le vuoi nascondere come se fossero eliminate, sull'evento change della cella puoi filtrare la dataGridView per escludere dalla visualizzazione tali righe oppure tenerle visibili con un colore diverso e bloccate.
Puoi predisporre messaggi di conferma e o di ripristino di tale righe per confermare di averle contrassegnate oppure per riportale in vita nella dataGridView.
Puoi gestire l'abbandono accidentale o voluto della Form emettendo un messaggio se si vogliono abbandonare le modifiche in sospeso, sfruttando sempre i metodi preesistenti.
Insomma, io prediligerei sempre di utilizzare metodi standard per non incappare mai in certi problemi…