Jos datasetin taulun luokassa muutetaan usean rivin arvoja, laukeaa formilla BindingSourcen ListChanged eventti tarpeettomasti joka muutoksen jälkeen.
Loin taulun luokkaan eventin;
Partial Public Class DataTable Public Event EditingStateChanged(Byval State as Boolean) Private Sub Editing() RaiseEvent EditingStateChanged(True) 'Muokataan rivejä RaiseEvent EditingStateChanged(False) End Sub
Formilla sitten
Private Sub Table_EditingStateChanged(Byval State as Boolean) Handles DataSet.Table.EditingStateChanged If State = True Then BindingSource.RaiseListChangedEvents = False Else BindingSource.RaiseListChangedEvents = True BindingSource.ResetBindings(False) End If End Sub
Toimii, mutta mietin vain, että mahtaako olla paras tapa toteuttaa tuo?
Miten te kokeneemma koodarit tuo tekisitte? Ehkä tuohon on jokin valmis tapa..
Ok, näyttäisi että seuraava ajaa saman asian;
'Taulussa Partial Public Class DataTable Private Sub Editing() Me.BeginInit 'Muokataan rivejä Me.EndInit End Sub
'Formilla Private Sub BindingSource_ListChanged(...) Handles BindingSource.ListChanged If DataSet.DataTable.IsInitialized Then 'Tee jotain End If End Sub Private Sub DataTable_Initialized(...) Handles DataSet.DataTable.Initialized BindingSource.ResetBindings(False) End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.