Argh. Mühsam erhängt sich das Eichhörnchen. Da solch eine Konstellation selten bei mir vorkommt, vergesse ich immer die Details. Daher nochmal schnell ( ) getestet, bevor ich weg muss:
Ich habe 3 Spalten in meiner WarenDataTable: Artikelpreis, Versandkosten, Gesamtpreis. Bei den ersten beiden stelle ich den NullValue auf 0, bei der letzten auf -1.
Im CodeBehind:
Das läuft wertetechnisch.
Einziger von mir erknnbarer Makel: Wenn man in einem DGV die Werte in 1. Spalte oder 2. Spalte ändert, passiert im DGV noch nix. Der Wert wird bereits richtig berechnet, aber eben noch nicht angezeigt. Erst wenn man die Zeile wechselt oder auf die 3. Spalte geht (Gesamtpreis), dann wird es korrekt aktualisiert.
Das mit dem IgnoreChange ist nur dann relevant, wenn Artikelpreis+Versandkosten -1 ergäben, da dann sich ne Endlosschleife ergäbe - was praktisch hoffentlich nicht eintritt.
Ich habe 3 Spalten in meiner WarenDataTable: Artikelpreis, Versandkosten, Gesamtpreis. Bei den ersten beiden stelle ich den NullValue auf 0, bei der letzten auf -1.
Im CodeBehind:
VB.NET-Quellcode
- Partial Public Class WarenDataTable
- Private IgnoreChange As Boolean = False
- Private Sub WarenDataTable_WarenRowChanged(sender As Object, e As WarenRowChangeEvent) Handles Me.WarenRowChanged
- Calculate3rdColumn(e.Row)
- End Sub
- Private Sub WarenDataTable_ColumnChanged(sender As Object, e As DataColumnChangeEventArgs) Handles Me.ColumnChanged
- Calculate3rdColumn(DirectCast(e.Row, WarenRow))
- End Sub
- Private Sub Calculate3rdColumn(CurrentRow As WarenRow)
- If IgnoreChange Then Exit Sub
- If (CurrentRow.Gesamtpreis = -1 OrElse CurrentRow.Gesamtpreis <> CurrentRow.Artikelpreis + CurrentRow.Versandkosten) Then
- IgnoreChange = True
- CurrentRow.Gesamtpreis = CurrentRow.Artikelpreis + CurrentRow.Versandkosten
- IgnoreChange = False
- End If
- End Sub
- End Class
Das läuft wertetechnisch.
Einziger von mir erknnbarer Makel: Wenn man in einem DGV die Werte in 1. Spalte oder 2. Spalte ändert, passiert im DGV noch nix. Der Wert wird bereits richtig berechnet, aber eben noch nicht angezeigt. Erst wenn man die Zeile wechselt oder auf die 3. Spalte geht (Gesamtpreis), dann wird es korrekt aktualisiert.
Das mit dem IgnoreChange ist nur dann relevant, wenn Artikelpreis+Versandkosten -1 ergäben, da dann sich ne Endlosschleife ergäbe - was praktisch hoffentlich nicht eintritt.
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.