Laden...

Serialisierung fürs Clipboard von Objekten (Klassen) mit DI

Erstellt von martinO vor 13 Jahren Letzter Beitrag vor 13 Jahren 769 Views
M
martinO Themenstarter:in
164 Beiträge seit 2009
vor 13 Jahren
Serialisierung fürs Clipboard von Objekten (Klassen) mit DI

Hallo zusammen

Verwendetes DI-Framework: Ninject
Technologie: WPF mit MVVM

Um etwas ins Clipboard zu speichern und daraus zu lesen, muss das Objekt Serializable sein. Um etwas zu deserialisieren, braucht es einen parameterlosen Konstruktor.
Nur... Wir verwenden DI um z.B. die Übersetzungs-Funktionalität zu injecten. Dann können Werte für die View im ViewModel übersetzt werden

ViewModel:

public Konstruktor(ILocalization loc) {...}

string Label{get;set;}

string TranslatedLabel { 
  get { return this.loc.Translate<string>(this.Label); }
}

In der View wird dann nur TranslatedLabel gebunden. (in der View zu übersetzen wäre möglich, jedoch soll dieses einfache Beispiel aufzeigen, wo das Problem liegt - gibt noch andere Abhängigkeiten)

Wenn ich nun einen leeren Konstruktor im ViewModel erzeuge, sind all meine Injections natürlich null wenn ich das VM wiederherstelle mit Clipboard.GetData("meinVMFormat");

Wie würdet ihr diese Aufgabe lösen?

Die einzige Möglichkeit die mir einfällt ist, die nötigen Abhängigkeiten in die Paste-Implementierung zu injecten, das VM wiederherzustellen (in der Paste Implementierung) und dann die VM Abhängigkeiten von der Paste-Implementation aus zu setzen. Hab ich aber noch nicht getestet, weil ich eine schönere Lösung finden möchte...

Merci im Voraus und gruess

Martin

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

geschickter wäre es wohl die eigentlichen Daten, sprich das Model und nicht das ViewModel übers Clipboard zu verteilen. Das ViewModel stellt an sich ja meist nur ne geeignete Ansicht für die View auf die Daten bereit. Wenn du die Daten übers Clipboard bekommst, solltest du auch kein Problem haben dir beim Empfänger das ViewModel wieder mit den richtigen Abhängigkeiten zu erstellen.

Baka wa shinanakya naoranai.

Mein XING Profil.

M
martinO Themenstarter:in
164 Beiträge seit 2009
vor 13 Jahren

Hallo talla

Merci für deine Antwort. Stimmt - eigentlich wäre es am saubersten, zuerst die VM-Daten ins Model zu schreiben, den entsprechenden Datensatz aus dem Model zu kopieren, ins Model pasten und das Model wieder ins VM zu laden.

Dieser Ansatz wird sicher auch diskutiert.