Laden...

Wie kann ich im MVVM den letzten ausgewählten Pfad speichern und verwenden?

Erstellt von CodeF vor 3 Jahren Letzter Beitrag vor 3 Jahren 221 Views
C
CodeF Themenstarter:in
12 Beiträge seit 2020
vor 3 Jahren
Wie kann ich im MVVM den letzten ausgewählten Pfad speichern und verwenden?

Hallo, ich bin in einer WPF-MVVM-Anwendung und habe eine Klasse für den Zugriff auf Daten (DataAccessLayer).
Diese wird von einer Businesslogic-Klasse verwendet und diese ist für das Laden bzw. Speichern von verchiedenen Daten zuständig. Hier wird auch der Dateiauswahldialog gesteuert.
Es gibt für zwei unterschiedliche Dateitypen zwei unterschiedliche FileLoad-Dialoge die jeweils ihren letzten gewählten Pfad speichern sollen, um bei nächstem Start wieder verfügbar zu sein.
Ich hab mir des Thema mit den ConfigurationManager angeschaut, dieser ist aber in meiner Klasse nicht verfügbar sondern nur in der Klasse des Hauptfensters.
Wie realisiere in nun die Speicherung und das Laden der verschiedenen Pfade?
Wie macht ihr so was?

Gruß

2.079 Beiträge seit 2012
vor 3 Jahren

Der ConfigurationManager ist so ziemlich am Ende, seit ein paar Jahren gibt's stattdessen Microsoft.Extensions.Configuration, das einen ganz anderen Weg geht, dafür aber generelle Konfiguration aus allen möglichen Quellen unterstützt. Außerdem dazu gibt's noch Microsoft.Extensions.Options, was darauf aufsetzen kann und ein paar mehr Benefits bietet, notwendig ist es aber nicht.

Für sowas würde ich dann eine JSON irgendwo unter %appdatalocal% ablegen, wo Du deine Pfade ablegst, das oben genannte Configuration-Framework kann dann diese Datei einlesen. Wenn Du mehrere Dateien hast, kannst Du die auch Kombinieren und der jeweils letzte Wert für einen Key "gewinnt".

Speichern kann das von sich aus aber nicht, es bietet zwar eine Schnittstelle dafür, umsetzen müsstest Du es aber leider selber.

Wenn dir das zu viel oder zu fremd ist, dann musst Du es wohl selber machen.
So oder so kannst Du das hinter einem weiteren Interface verstecken, was sich um das Laden und Speichern von solchen "zweitrangigen Usability-Daten" kümmert.

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.