none
Benutzereingabe Daten während Laufzeit sollen gesichert bleiben beim Fensterwechsel RRS feed

  • Frage

  • Ich muss für die Uni ein Programm mit WPF entwickeln.

    ich habe bereits mehrere Button erstellt, wobei sich beim klicken der Buttons eine Seite in mein Mainwindow öffnet, wo der Anwender die gefragten Daten eingeben kann.

    Ich würde gern wissen, wie ich diese Daten gespeichert bekomme während das Programm läuft, da es mehrere Eingaben gemacht werden müssen, die am Ende gebraucht werden um die Berechnung durchzuführen.

    Wenn ich jetzt eine Eingabe mache und das Fenster wechsle, gehen die Daten verloren.

    Dazu kommt noch das verknüpfen der Daten miteinander. HIIIIILLLFEEE!

    Ich habe gefühlt das komplette Googel durchsucht.. Ich habe einiges gefunden, aber iwie funktioniert alles nicht. Man muss dazu auch sagen, dass ich Anfängerin bin.

    ich bin für jede Hilfe dankbar.

    Donnerstag, 8. August 2019 14:28

Antworten

  • Normalerweise verwendet man bei WPF Datenbindung (oft im bekannten M-VM-M-Pattern), das heisst Deine Dateneingaben werden in einem Daten-Objekt gespeichert so dass sie da auch noch sind wenn sich in der UI etwas ändert, zb ein Fenster geschlossen und ein anderes geöffnet wird. Das sind dann sozusagen zwei Schichten oder "Layers".

    Üblicherweise werden die Daten aus dem Datenobjekt später dann "persistiert" also in eine Datei oder Datenbank (oder via Webservice in die "Cloud") gespeichert. Aber das ist erst einmal nicht so wichtig.

    Ganz simpel zu erklären ist das ganze nicht.
    Das wichtigste wäre dass Du erst einmal eine Datenklasse erstellst die alle Daten, die Du benötigst, als Properties bereitstellt. Die musst dann in der UI, also dem Fenster, an die Controls "binden", mit "{Binding}" in XAML.

    Du musst Dir irgendwo ein paar Beispiel-Sachen angucken. Ein Hallo-Welt-App mit ein paar TextBoxen usw, wo auf den DataContext eingegangen wird und INotifyPropertyChaned (obwohl das evtl am Anfang auch vernachlässigbar ist wenn nur der User die Daten selbst manuell ändert) usw.

    Hier zB https://www.codeproject.com/Articles/165368/WPF-MVVM-Quick-Start-Tutorial

    Viele Glück schon einmal, irgendwann schnallt mans und dann wirds ganz einfach ;)


    Sonntag, 18. August 2019 05:55

Alle Antworten

  • Hallo g0rdit4,

    Wenn Du in der Anwendung Datentabellen und Datasets mit Daten befüllst, so kannst Du die Daten beispielsweise in einer Datenbank in SQL Server oder als XML-Datei ablegen. Auf alle Einzelheiten aus dem ersten Verfahren einzugehen wäre ein umfangreiches Thema. Sieh Dir das Beispiel in diesem Thread an, in dem erklärt wird, wie Du das Dataset in einer XML-Datei serialisieren kannst:
    Master/Detail - Dataset - XML, anstatt SQL Server Datenbank

    Insbesondere möchte ich Dir nahelegen, sich mit dem von Elmar verlinkten Artikel auseinanderzusetzen, wenn Du Dich für XML entscheidest:
    Verwenden von XML in einem "DataSet"

    Beispielcode für die Serialisierung und Deserialisierung findest Du (in Visual C#) in diesem Thread:
    Textdatei zur Variablen machen

    So können die Daten gespeichert werden, nachdem die Ausführung der Anwendung zu Ende ist. Wenn Du sie nur im Laufe einer Ausführung brauchst, beschreibe bitte ausführlicher, wie viele Fenster Du hast und wie sie gesteuert werden (mit Beispielcode).

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Freitag, 9. August 2019 14:04
    Moderator
  • Normalerweise verwendet man bei WPF Datenbindung (oft im bekannten M-VM-M-Pattern), das heisst Deine Dateneingaben werden in einem Daten-Objekt gespeichert so dass sie da auch noch sind wenn sich in der UI etwas ändert, zb ein Fenster geschlossen und ein anderes geöffnet wird. Das sind dann sozusagen zwei Schichten oder "Layers".

    Üblicherweise werden die Daten aus dem Datenobjekt später dann "persistiert" also in eine Datei oder Datenbank (oder via Webservice in die "Cloud") gespeichert. Aber das ist erst einmal nicht so wichtig.

    Ganz simpel zu erklären ist das ganze nicht.
    Das wichtigste wäre dass Du erst einmal eine Datenklasse erstellst die alle Daten, die Du benötigst, als Properties bereitstellt. Die musst dann in der UI, also dem Fenster, an die Controls "binden", mit "{Binding}" in XAML.

    Du musst Dir irgendwo ein paar Beispiel-Sachen angucken. Ein Hallo-Welt-App mit ein paar TextBoxen usw, wo auf den DataContext eingegangen wird und INotifyPropertyChaned (obwohl das evtl am Anfang auch vernachlässigbar ist wenn nur der User die Daten selbst manuell ändert) usw.

    Hier zB https://www.codeproject.com/Articles/165368/WPF-MVVM-Quick-Start-Tutorial

    Viele Glück schon einmal, irgendwann schnallt mans und dann wirds ganz einfach ;)


    Sonntag, 18. August 2019 05:55