Alle Einstellungen aufeinmal speichern

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

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

    Alle Einstellungen aufeinmal speichern

    Hallo!
    Ich habe falls ich probleme in vb.net hatte und danach gesucht habe in diesem Forum immer etwas gefunden.
    Deswegen habe ich mich jetzt hier Registriert.

    Meine Frage ist:
    Kann ich alle meine Einstellungen (Also CheckBoxen, RadioButtons, TextBoxen etc..) aufeinmal Speichern?
    Wollte es mit My.Settings versuchen aber da ich es nicht von anfang an gemacht habe müsste ich jetzt jedes einzelne Element
    dort einspeichern. (Und ich habe sehr sehr viele Elemente.)
    Ich suche halt nach einer Methode die alle Elemente abfragt und deren Status speichert.

    Würde mich über Hilfe echt freuen da ich mich damit jetzt seit 2 tagen herumschlage..
    Vielen Dank!
    Ich persönlich mag diese "My.Settings" ja nicht...

    Würde dir z.B. serialisieren/deserialisieren empfehlen. Das ist echt komfortabel und einfach zu implementieren. Vorausgesetzt du hast dein Objekt in eine Klasse (Properties, Konstruktor und co.) ausgelagert.

    Oder, für den Anfang, einfach alles in ne .txt Datei Speichern und später wieder daraus laden.

    Hast du alles in der GUI untergebracht, empfehle ich dir 1. Dies künftig nicht mehr zu machen und 2. Das du dich in das Thema "Schichten Architektur" einliest.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    mrMo schrieb:

    "Schichten Architektur" einliest.
    @'mrMo':Willst du auf MVVM raus? :D

    @frechdax: Ich würde dir in socherlei Hinsicht zu MVVM raten. Dazu eignet sich am besten WPF als Grundlage (Noch ein Thema, welches du dir dann ansehen solltest). Hier bei kannst du dein Ganzes GUI (also den aktuellen Status jedes einzelnen Steuerelements) mithilfe einer Klasse speichern. Diese brauchst du dann nur noch mit einem Serializer deiner Wahl (entweder Newtonsoft.Json.JsonConvert.SerializeObject() oder System.XMl.XmlSerializer.Serialize()) persistieren. Beim nächsten Start der Anwendung liest du die Datei aus und erstellst damit deine Persistier-Klasse. Nun brauchst du nur noch die Einstellungen von deinem Deserialisieren Objekt wieder in deine Persistier-Klasse (heißt in MVVM einfach ViewModel) zurück speichern. Schon hast du das UI wieder so wie vorher.

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    mrMo schrieb:

    Ich persönlich mag diese "My.Settings" ja nicht...
    Würde dir z.B. serialisieren/deserialisieren empfehlen. Das ist echt komfortabel und einfach zu implementieren.

    Im Grunde keine Schlechte Idee, jedoch sollte man dazu erwähnen, wo man das ganze am Besten ablegen sollte. Denn sollte man Dateien bspw. im Programme Ordner anlegen wollen, werden dafür Admin-Rechte notwendig. Solche "Saves" gehören von daher hierher: Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Appname")

    Radinator schrieb:

    Persistier-Klasse (heißt in MVVM einfach ViewModel)

    Ayy-wat?
    Das ViewModel sollte, wenn man MVVM wirklich nutzt, absolut garnichts mit der View zu tun haben. Das View Bindet seine Controls an Commands und Properties, und das unterliegende ViewModel reagiert evtl. auf diese Commands. Ebenso schickt es immer wieder Notifikationen raus, dass sich ne Property oder ähnliches geändert hat. Vom View selbst hat es jedoch im Normalfall keinen Plan.

    EaranMaleasi schrieb:

    Das View Bindet seine Controls an Commands und Properties
    Ok hab mich missverständlich ausgedrückt. Mit der Aussage Persistier-Klasse (heißt in MVVM einfach ViewModel) meinte ich die Tatsache, dass das die Klasse ist, welche man serialisiert abspeichert. Um sie bei Bedarf (Neu Start) wieder verwenden zu können (bzw den Stand)

    Im Anhang mal ein Beispielprojekt
    Dateien
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Oh man Männer, ich glaube wir übertreiben grad ... :P

    Unsere Vorschläge sind alle prima und so, aber ich befürchte das der TE damit gerade komplett überfordert wird und nur Bahnhof versteht (nicht böse gemeint).
    ​Das einfachste was mir einfällt, ist der Weg über eine simple Text-Datei (.txt) oder eben über den "My.Settings" Weg, was aber beides viel Handarbeit/Schreibarbeit erfordert.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Zunächstmal: Textboxen, Checkboxen etc. kann man garnet speichern.
    Man kann allenfalls bestimmte Properties speichern, und auch nicht jede.
    Deshalb gibts für den Universal-AllesSpeicherer kein Patentrezept.

    Einem Universal-Speicherer möglichst nahe kommt diese meine Konstruktion: ComplexConverter: alles in einen String und zurück?
    Aber wie gesagt: Es gibt immer noch genug Fälle, wo man nochmal anders vorgehen muss.