Einzelnen Beitrag anzeigen

mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#56

AW: MVVM in der Realität

  Alt 10. Jun 2015, 08:02
Kannst Du mal kurz skizzieren, wie Ihr die Aktualisierungswege in beiden Richtungen realisiert?
- Eingabe im Edit ändert den Wert in der Datenschicht (evtl. nach Validierung)
- Änderung von Daten durch Logik informiert Edit zwecks Neuzeichnung (müsst Ihr da z.B. Nachrichten in Settern versenden?)
Ist ne Weile her (im Moment mache ich fast nur PHP Projekte). Wir haben eine Zwischenschicht, in der alle Bindings registriert werden. Ist die eine Seite des Bindings ein Control hängt sich die Zwischenschicht automatisch an das passende Event, das bei einer Änderung ausgeführt wird. Dazu gibt es je Control-Klasse einen Adapter, der automatisch gezogen wird. Bei einem PODO als Quelle muss man sowas ähnliches wie eine PropertyChangedNotification aus .NET abfeuern. Ich hatte auch mal Konstruktionen ausprobiert, die die nativen Typen kapseln und die Notification dann selbstständig auslösen. Fand ich aber immer ziemlich sperrig. Dazu kommt, dass in unseren Legacy-Anwendungen sowieso schon so eine Notification in jedem Setter steckt, um prüfen zu können, ob ein Wert sich geändert hat und abgespeichert werden muss.

EDIT: Wenn ich mal Zeit habe, kann ich auch mal den Code raussuchen. Ist nicht besonders hübsch, aber funktioniert für unsere Zwecke. Veröffentlichung war mal geplant. Aber da fehlt aktuell einfach die Zeit (und ein XE8)

@Stevie

Um das Problem des Null-Werts kommen wir bei uns herum, weil wir dafür immer den Index -1 ohne Text nehmen. nil wird bei uns also je nach Control immer zu einem Leerstring oder eben zum Index -1.

Geändert von mquadrat (10. Jun 2015 um 08:04 Uhr)
  Mit Zitat antworten Zitat