Hallo,
Hier wurde mir ja schon des Öfteren auf die Sprünge geholfen!!
Ich habe an DGVs Daten gebunden und schiebe spezielle Date in ein List(Of ) um verschiedene Vergleiche durchzuführen. Warum genau, ist ja erstamal egal, die List(Of ) bietet sich einfach an..
Als Auslöser zum Füllen, Bearbeiten etc., dient mir das BindingSource.CurrentChange-Event:
Function zum befüllen:
(Zwischenschritte lass ich jetzt mal der Übersichtshalber weg)
Soweit macht es alles was es soll. Nur leider wird das Event ja auch ausgelöst wenn ich im DGV mit der dazugehörigen BS:
Ich hab schon alles mir erdenkliche und im Netz auffindbare ausprobiert um dieses Problem zu umschiffen. Am liebsten wäre es mir, wenn "Row löschen - Event" dann Sub verlassen.
Auch GewRow.HasError bringt nichts. Außerdem hab ich noch mit den DGV-Events probiert, aber das stellt mich nicht zufrieden, da diese Events nicht auslösen wenn ich es brauche und somit wird alles nur unsinnig und unnötig Kompliziert/unübersichtlich.
Kennt jemand noch eine Lösung oder hat evtl. einen Verbesserungsvorschlag!?
Vielen Dank!!!
Hier wurde mir ja schon des Öfteren auf die Sprünge geholfen!!
Ich habe an DGVs Daten gebunden und schiebe spezielle Date in ein List(Of ) um verschiedene Vergleiche durchzuführen. Warum genau, ist ja erstamal egal, die List(Of ) bietet sich einfach an..
Als Auslöser zum Füllen, Bearbeiten etc., dient mir das BindingSource.CurrentChange-Event:
Function zum befüllen:
VB.NET-Quellcode
- Private Function Fill_ListOfGewichte(ByVal LaststufenID_Ende As Integer) As Boolean
- Dim counter As Integer = 0
- MyGewichtListe.Clear()
- For Each LS_Row As ProjektDS.ProjLaststufenRow In ProjektDS.ProjLaststufen
- Dim GewichteInRow As Integer = 0
- For Each LS_Gew_Row As ProjektDS.ProjLS_ProjGewichteRow In ProjektDS.ProjLS_ProjGewichte
- If LS_Gew_Row.LS_ID = LS_Row.ID Then ' wenn LaststufenID in LS_Gewichte
- For Each GewRow As ProjektDS.ProjGewichteRow In ProjektDS.ProjGewichte
- If LS_Gew_Row.G_ID = GewRow.ID Then ' wenn GewichteID gleich der GewichteID in LS_Gewichte Tabelle
- GewichteInRow += 1
- If LS_Row.Entlastung Then ' Wenn Entlasten gewählt
- If Not Search_N_Delete_inListOF(MyGewichtListe, GewRow.ID) Then ' wenn Gewicht nicht auf dem Stapel vorhanden
- counter += 1
- MyGewichtListe.Add(New GewichtList() With {.Position = counter, .ID = GewRow.ID, .Farbe = GewRow.Farbe, .Gewicht_anzahl = GewichteInRow, .Fehler = True})
- Return False
- Else counter -= 1 ' Wenn Gewicht vorhanden, aus der List(Of ...) löschen und d.d. nicht in LV anzeigen.
- End If
- Else ' Wenn Belastung gewählt
- counter += 1
- MyGewichtListe.Add(New GewichtList() With {.Position = counter, .ID = GewRow.ID, .Farbe = GewRow.Farbe, .Gewicht_anzahl = GewichteInRow, .Fehler = False})
- End If
- End If
- Next
- End If
- Next
- If LS_Row.ID = LaststufenID_Ende Then Return True
- Next
- Return True
- End Function
Soweit macht es alles was es soll. Nur leider wird das Event ja auch ausgelöst wenn ich im DGV mit der dazugehörigen BS:
ProjLS_ProjGewichteBindingSource
, eine Row manuell lösche (also Zeile markieren und Taste Entf. ). Und genau das führt Im DataSet.Designer zur Fehlermeldung: Diese Zeile wurde aus einer Tabelle entfernt und enthält keine Daten. BeginEdit() ermöglicht das Erstellen von neuen Daten in dieser Zeile.
Verantwortliche Zeile im Code ist: Genauer =>If LS_Gew_Row.G_ID = GewRow.ID Then ' wenn GewichteID gleich der GewichteID in LS_Gewichte Tabelle
GewRow.ID
Ich hab schon alles mir erdenkliche und im Netz auffindbare ausprobiert um dieses Problem zu umschiffen. Am liebsten wäre es mir, wenn "Row löschen - Event" dann Sub verlassen.
Auch GewRow.HasError bringt nichts. Außerdem hab ich noch mit den DGV-Events probiert, aber das stellt mich nicht zufrieden, da diese Events nicht auslösen wenn ich es brauche und somit wird alles nur unsinnig und unnötig Kompliziert/unübersichtlich.
Kennt jemand noch eine Lösung oder hat evtl. einen Verbesserungsvorschlag!?
Vielen Dank!!!
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „ludl8615“ ()