Registriert seit: 16. Jul 2009
72 Beiträge
Delphi 10.1 Berlin Professional
|
Livebinding Problem mit Combobox auf Datenfeld
7. Jan 2013, 17:40
Ich habe gerade XE3 installiert und fange an mich mit Livebindings zu beschäftigen.
So ungefähr habe ich das auch schon verstanden und mit dem vissuellen Livebindingseditor ist das eigentlich ganz einfach.
Jetzt hänge ich aber bei einem wohl trivialen Problem und habe nach stundenlangem Herumprobieren und Googeln keine Lösung gefunden.
Ich habe eine Datentabelle mit einem Integer Feld, welches einen bestimmten Wert zwischen 0 und sagen wir mal 10 hat.
Jeder dieser Werte repräsentiert eine bestimmte Eigenschaft.
Beispiel:
0 = undefiniert
1 = Eigenschaft 1
2 = Eigenschaft 2
3 = Eigenschaft 3
etc.
Nun habe ich auf dem Eingabeformular eine Combobox, platziert und möchte diese zum einen mit Items füllen, die eben den Eigenschaften entsprechen, also undefeiniert, Eigenschaft 1, etc.
Aus der Combobox soll eine Eigenschaft ausgewählt werden können und in der Datenbank soll dann entsprechend der Integerwert (in dem Fall also eigentlich Itemindex) gespeichert werden.
Umgekehrt soll natürlich auch anhand des gespeicherten Wertes gleich der Itemindex der Combobox gesetzt werden, damit der richtige Eigenschaftstext angezeigt wird.
Das möchte ich über Livebindings ralisieren. Irgendwie funktioneirt das aber nicht. Binde ich itemindex an das Feld, dann wird es zwar richtgi angezeigt, aber ich kann dann den Feldwert nicht neu setzen.
Außerdem bräuchte ich unter Umständen noch einen Weg für den nicht so trivialen Fall, dass der Feldwert genau dem Itemindex entspricht, sondern die Einträge der Auswahlliste durchaus eine andere Sortierung haben sollten, als der Integer Wert im Datenfeld, den sie repräsentieren.
Kann mir da vielleicht jemand auf die Sprünge helfen, bevor ich gleich wieder die Livebindings ad acta lege, noch ehe ich richtig damit angefangen habe?
Blöderweise gibt es jede Menge Tutorials, aber genau diese Problematik, die doch eigentlich so gängig sein sollte, wird nirgendwo erklärt.
Danke schon mal im Voraus.
|