DataBinding die X te

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    DataBinding die X te

    Neu

    Hallo Zusammen,

    folgendes : Ich stelle eine Datatable in einem Datagridview mittels Bindingsource dar.
    Da nicht alles in die Zeile passt, sind nebenan Textboxen zur Darstellung der Spalteninhalte. Diese sind über Bindingsource den Spalten zugeordnet.
    Wenn ich eine andere Zeile im Datagridview anklicke ändern sich die Textboxen nicht auf die ausgewählte Zeile.
    Was habe ich da zerschossen, denn ich denke es ging vor einigen Tagen.

    Gruß Wolfy

    Neu

    Das DataBinding zwischen DGV und BS ist ja anscheinend da.
    Was sagen die DataBinding-Einstellungen der TextBox?
    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.

    Neu

    (DataBindings)
    (Erweitert)
    Tag keine
    Text DataTable1BindingSource - Vorname


    Ich muß irgendwas zerschossen haben.

    Danke

    @VB1963 Doch denn die erste Zeile des DGV wird in den Textboxen angezeigt. Die bekommen nur den Wechsel der aktuellen Zeile nicht mehr mit.Wolfy

    Neu

    Ist denn das Binding DGV-BS noch da? Kannst ja mal nen Button auf's Form draufziehen und dazu den Code

    VB.NET-Quellcode

    1. MessageBox.Show(DataTable1BindingSource.Position.ToString)
    Und wenn Du im DGV ne andere Zeile wählst, müsste da beim ButtonClick auch immer ne andere Zeilennummer stehen. Denn sonst ist da der Wolf verbuddelt.
    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.

    Neu

    Tausend Dank.

    Ihr habt mich auf den Richtigen Weg gebracht.
    Ich lasse eine Berechnung über die Daten laufen. Das habe ich an DataTable1BindingSource.CurrentChanged gebunden.
    dort hatte ich ein DataTable1BindingSource.MoveFirst() drinnen. """Das war die Ursache""".

    Nun mein nächstes Problem.
    Das Ereignis CurrentChanged ist hierbei wohl auch nicht das Richtige.
    Wenn ich jedoch ListChanged nehme bekomme ich Fehler beim Laden (System.NullReferenceEx..) in Zeile "txt = DataTable1BindingSource.Count.ToString & " / " & (dt.Rows.Count).ToString".
    Da noch keine Daten drinnen sind.
    Welches Ereignis ist hierfür geeignet?


    VB.NET-Quellcode

    1. 'Anzeige der Statistik auf der Filterseite
    2. Private Sub AenderungBindingSource() Handles DataTable1BindingSource.CurrentChanged
    3. Dim txt As String
    4. Dim txt2 As String = ""
    5. 'MsgBox("Bindingsource geändert") 'Testausgabe
    6. txt = DataTable1BindingSource.Count.ToString & " / " & (dt.Rows.Count).ToString
    7. tbAnzahl.Text = txt
    8. 'DataTable1BindingSource.MoveFirst()
    9. Dim sum As Decimal = 0
    10. Dim anzNotAbger As Integer = 0
    11. Dim anzOnline As Integer = 0
    12. Dim anzTips As Integer = 0
    13. Dim anzHUK As Integer = 0
    14. For i As Integer = 0 To DataTable1BindingSource.Count - 1
    15. Dim row = DirectCast(DirectCast(DataTable1BindingSource(i), DataRowView).Row, DataSet1.DataTable1Row)
    16. If Not IsDBNull(row.Werbegebühr) Then
    17. sum = sum + row.Werbegebühr
    18. End If
    19. If Not (row.Abgerechnet) Then
    20. anzNotAbger = anzNotAbger + 1
    21. End If
    22. If row.Online Then
    23. anzOnline = anzOnline + 1
    24. End If
    25. If row.Tip Then
    26. anzTips = anzTips + 1
    27. End If
    28. If row.MeineHUK Then
    29. anzHUK = anzHUK + 1
    30. End If
    31. Next
    32. tbWG.Text = sum.ToString & " €"
    33. tbNotAbgerechnet.Text = anzNotAbger.ToString
    34. tbOnline.Text = anzOnline.ToString
    35. tbTips.Text = anzTips.ToString
    36. tbHUK.Text = anzHUK.ToString
    37. End Sub


    Vielen Dank
    Wolfy

    Neu

    für die gezeigten Berechnungen ist wohl das bs.ListChanged zuständig.
    kann durchaus sein, dass das ListChanged gelegentlich auch feuert, wenn die Berechnung noch undurchführbar ist - das musste halt abfangen.
    Hilfreich beim Abfangen kann sein die ListChangedType-Property des EventArgs.

    Eine erste Massnahme kann auch sein, die Zeile "txt = DataTable1BindingSource.Count.ToString & " / " & (dt.Rows.Count).ToString" zu löschen - sieht mir unsinnig aus, und was ist dabei das dt?

    Neu

    Wann soll berechnet werden? Wann und wie ändern sich die Daten? Werden die Daten nur geladen oder können später Daten noch verändert werden? Wodurch? Auch durch den User? Kann der in der Tabelle/in den Daten rumfummeln?
    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.