Aktualisierung von DataGridViews über ObservableCollections

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von fabimaurice.

    Aktualisierung von DataGridViews über ObservableCollections

    Hi, ich bins mal wieder :) .

    Also zu meinem Problem:

    Ich befülle eine observableCollection per reader mit Daten aus einer Access DB, diese Collection hänge ich dann als DataSource an mein DataGridView.
    Jetzt füge ich in einer neuen Form etwas zu dieser Datenbanktabelle hinzu. Das wird dann natürlich nicht sofort in die Collection übernommen(Falls man in die Collection hinzufügen kann und dann in die Db übernehmen kann klärt mich auf, wäre nützlich.), Damit ich es dann in die Collection übernehmen kann befülle ich die Collection neu. Wenn ich das gemacht habe dann werden z.B änderungen an den Daten im DataGridView übernommen, jedoch neue Einträge nicht, genau so mit gelöschten Einträgen. Wie lässt sich das lösen?

    Befüllen der ObservableCollection:
    (Code zu allem füge ich morgen früh hinzu, hab mein Problemprogramm auf dem Arbeitsrechner deshalb.)

    Falls jemand trotzdem schon eine Idee hat freu ich mich über Lösungsvorschläge.

    MfG
    Fabian

    fabimaurice schrieb:

    Ich befülle eine observableCollection per reader mit Daten aus einer Access DB, diese Collection hänge ich dann als DataSource an mein DataGridView.


    Da gibts deulich leistungsfähigere Ansätze - das hat kein Sinn, sich iwas selbst zu basteln mit Readern und ObservableCollections.

    Dein konkretes Problem betrifft formübergreifendes Databinding.
    Habich Lösungen OutOfTheBox für, aber nicht mit Readern und ObservableCollections.

    Schau dir auf vier Views-Videos an, wie einfach und effizient man auch komplizierte Datenmodelle verarbeiten kann, und schul dann um.
    Da sich noch weiter in Readern und ObservableCollections verfransen sehe ich kein Sinn drin.
    formübergreifendes Databinding kann man hier angugge:
    formübergreifendes Databinding . Das ist zunächstmal eine Primitiv-Lösung, mit händischem Umstöpseln der relevanten BindingSources.
    Habich ein Helper-Framework geschrieben, wo das ein für allemal abgefrühstückt ist (ist im vorletztn Post-Anhang mit drin).
    Aus dem Zusammenhang gelöst kann man das wohl angucken - zum umsetzen muss man aber die Vorraussetzungen lernen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    ähm - TypDataset sind natürlich auch Klassen.
    TypDataset stellt die Datenklassen so bereit, dass sie von vornherein grundlegender Funktionalität bieten:
    Databinding, Sortieren, Filtern, Editieren mit Cancel-Option, Änderungs-Verfolgung. Also ohne eine Zeile Code zu schreiben stehts zur Verfügung - direkt aus der DB generiert (wenn du das willst).
    Und man kann auch Code schreiben, dass alle Änderungen des gesamten Dataset mit einem Befehl zurückgeschrieben werden.

    Das "moderne" EF hat da zB Probleme, weil man die generierten EF-Datentypen üblicherweise garnet verwendet - wobei dann die Änderungsverfolgung flöten geht.

    (Übrigens - wenn etwas wirklich veraltet ist, dann der Datenabruf mit selbstgebastelten Datareadern.)

    Aber es hat keinen Sinn, mit Chefs zu argumentieren.

    Wenns dich interessiert, Guck dir die BeispielSolutions vom 4 Views-Tut an, und stell dir vor, du müsstest diesen Kram mit selbstgebastelten Klassen programmieren.
    Dass du eine Ahnung bekommst, was möglich ist.

    Viel schlechter Code wird ja auch geschrieben, weil man nicht weiss, was alles eiglich möglich ist.