Hallo,
ich wollte eine Zeile ausblenden in einem DGV das per BindingSource gebunden ist (Mit BS-Filter geht nicht). Genau diese BindingSource meckert aber gewaltig dabei rum. Genauer gesagt der
(InvalidOperationException: Die mit der Position des Währungs-Managers verknüpfte Zeile kann nicht unsichtbar gemacht werden)
Jetzt habe ich da bissel rumgekramt und es stellt sich raus, wenn ich die BindingSource vorübergehend abstöpsel, dann kann ich das machen.
Ich möchte aber sichergehen, dass ich anschließend auch wieder alles richtig anschließe, denn ich weiß nicht was da wirklich mit meiner BindingSource passiert
Muss ich sicherstellen, dass vor
Es scheint nämlich keine Fehlermeldung zu kommen, wenn ich das nicht mache. Sichtbar werden die Zeilen dennoch nicht, was paradox wirkt, weil nun ja genau das der Fall sein müsste, was die Exception betonte nicht erlaubt ist
Auf der anderen Seite scheine ich mir das Sichtbarmachen sparen zu können, wenn ich einfach ResetBindings aufrufe, denn dann werden die Zeilen wieder sichtbar
Version 1
Version 2
Tja also beides geht, einfacher ist natürlich unten, ich bin bei beidem nicht sicher, ob das so korrekt ist.
Edit: Was ich auch festgestellt habe, wenn ich wieder Filter oder Sort Eigenschaften ändere, dann macht er auch schon wieder ganz vernünftig weiter und schmeißt alles was hintenrum gemacht wurde wieder raus (irgendwo scheint da ein ResetBindings sowieso zu laufen) also so wäre vielleicht auch vollkommen ausreichend:
Viele Grüße
ich wollte eine Zeile ausblenden in einem DGV das per BindingSource gebunden ist (Mit BS-Filter geht nicht). Genau diese BindingSource meckert aber gewaltig dabei rum. Genauer gesagt der
CurrencyManager
.(InvalidOperationException: Die mit der Position des Währungs-Managers verknüpfte Zeile kann nicht unsichtbar gemacht werden)
Jetzt habe ich da bissel rumgekramt und es stellt sich raus, wenn ich die BindingSource vorübergehend abstöpsel, dann kann ich das machen.
Ich möchte aber sichergehen, dass ich anschließend auch wieder alles richtig anschließe, denn ich weiß nicht was da wirklich mit meiner BindingSource passiert
Muss ich sicherstellen, dass vor
ResumeBinding
alle Zeilen wieder sichtbar sind? (Händisch Visible wieder auf True stellen) Es scheint nämlich keine Fehlermeldung zu kommen, wenn ich das nicht mache. Sichtbar werden die Zeilen dennoch nicht, was paradox wirkt, weil nun ja genau das der Fall sein müsste, was die Exception betonte nicht erlaubt ist
Auf der anderen Seite scheine ich mir das Sichtbarmachen sparen zu können, wenn ich einfach ResetBindings aufrufe, denn dann werden die Zeilen wieder sichtbar
VB.NET-Quellcode
- Private Sub chkAusblenden_CheckedChanged(sender As Object, e As EventArgs) Handles chkAusblenden.CheckedChanged
- If chkAusblenden.Checked Then
- 'Andere Filteroptionen Disablen
- DtBindingSource.SuspendBinding()
- For i = 0 To dgv.Rows.Count - 1 Step 2
- dgv.Rows(i).Visible = False
- Next i
- Else
- For i = 0 To dgv.Rows.Count - 1 Step 2
- dgv.Rows(i).Visible = True
- Next i
- DtBindingSource.ResumeBinding()
- 'Andere Filteroptionen Enablen
- End If
- End Sub
VB.NET-Quellcode
- Private Sub chkAusblenden_CheckedChanged(sender As Object, e As EventArgs) Handles chkAusblenden.CheckedChanged
- If chkAusblenden.Checked Then
- DtBindingSource.SuspendBinding()
- 'Andere Filteroptionen Disablen
- For i = 0 To dgv.Rows.Count - 1 Step 2
- dgv.Rows(i).Visible = False
- Next i
- Else
- DtBindingSource.ResumeBinding()
- DtBindingSource.ResetBindings()
- 'Andere Filteroptionen Enablen
- End If
- End Sub
Tja also beides geht, einfacher ist natürlich unten, ich bin bei beidem nicht sicher, ob das so korrekt ist.
Edit: Was ich auch festgestellt habe, wenn ich wieder Filter oder Sort Eigenschaften ändere, dann macht er auch schon wieder ganz vernünftig weiter und schmeißt alles was hintenrum gemacht wurde wieder raus (irgendwo scheint da ein ResetBindings sowieso zu laufen) also so wäre vielleicht auch vollkommen ausreichend:
Viele Grüße
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()