Ich habe mich in den letzten Tagen etwas mit MVVM beschäftigt. Setzt das jemand im Zusammenhang mit Delphi erfolgreich ein und falls ja, mit eigenem oder vorhandenem Framework?
Vor allem würde mich das Binding interessieren und wie man es elegant schafft, die Persistenz zu regeln sowie Informationen in den View zu bekommen, die er eigentlich nicht kennen darf aber (z.b. wegen Useability) kennen sollte.
Ich habe für das Binding bisher zwei Ansätze verfolgt:
* Verwenden der vorhandenen LiveBindings, die ja über das Observer-Pattern in TComponent einfach zu realisieren sind. Ist aber irgendwie sehr verschwurbelt, man sehe sich nur mal die seitenlangen Callstacks an.
* Erstellen eigener Bindingklassen. Momentan noch ohne (von Delphi vordefiniertem) Observer, sondern durch Zugriff von Events und Properties in die View-Komponenten über die erweitere
RTTI. Also sowas wie Poor Man's Livebindings.
Einfache Darstellung eines konkreten Problems:
* Datenbank enthält Char Feld mit 20 Länge und nur Großbuchstaben sind zulässig
* Model enthält die Daten aus einem Satz der
DB
* Viewmodel verwaltet die Daten des Model und die Logik
* Binding verknüpft Viewmodel mit
* View, in dem die Daten bearbeitet werden. Wenn ich jetzt hier ein Edit habe, sollte das optimalerweise nur 20 Zeichen in Großbuchstaben zulassen.