Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Databinding - Grundsatzdiskussion

  Alt 8. Jan 2013, 10:27
Die LiveBindings kopieren aber den Datenbestand in die GUI-Controls (sogar auch in Gitter) und das ist vom Konzept her unschön bis Mumpitz.
Das liegt, wie ich oben bereits erwähnte nicht an den LB an sich, sondern an dem StringGrid. Dieses arbeitet nicht virtuell sondern benötigt in den Zellen direkt den Inhalt. Siehe hierzu auch diesen SO Eintrag.

Außerdem bewegen wir uns bei der Diskussion Data Bindings auf verschiedenen Ebenen. Es gibt - ich nenn sie mal einfache und komplexe Bindings. Als Einfache könnte man ein Binding zwischen Edit und Vornamen einer Person, Checkbox und Enabled eines Buttons, etc bezeichnen. Diese sind vergleichbar mit einer einzeiligen Zuweisung (Person1.Vorname := Edit1.Text , Button1.Enabled := CheckBox1.Checked ). Dann gibt es komplexe Bindings, nämlich das Anzeigen von Datenmengen in Listboxes, Grids, u.ä. Diese lassen sich u.U. durch Kombination vieler einfacher Bindings realisieren (in den LiveBindings z.B. so getan).

Generell müssen Controls auch (fast) nichts davon wissen, dass sie "bindable" sind. Es muss lediglich eine Nachricht "mein Wert hat sich geändert" gesendet werden, auf welches ein Binding lauschen muss (Stichwort MSDN-Library durchsuchenINotifyPropertyChanged). Eventuelle Validierungslogik etc kann dann irgendwo im Binding Prozess durchgeführt werden und dementsprechend reagiert werden (Nachricht an den Benutzer, Fokuswechsel verhindern, etc).

Von Experten, die datenspezifischen Code generieren, halte ich nicht viel, denn das ist im Grunde nix anderes, als eine automatisierte Verletzung des DRY Prinzips.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat