Autor Beitrag
Määx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 123



BeitragVerfasst: So 23.03.14 14:00 
Hallo zusammen,

ich bin gerade dabi mir eine Art Autovervollständigung zu basteln - ich weiss, davon gibt es bereits jede Menge im Netz, aber die passen irgendwie nicht so richtig zu dem was ich möchte. Mein Ziel ist eigenltich so eine Art Mischung aus Autocomplete und ComboBox: Man kann einem TextFeld eine Liste von Objekten zuordnen, die eine ID und einen Namen haben. Wenn ich nun im Textfeld tippe erhalte ich den Namen als Textvorschlag und wähle ich es aus erhalte ich ID&Name zurück. Gebe ich eine beliebigen Text ein, erhalte ich neues Objekt mit ID=-1 und dem eingegeben Text als Name zurück.

Daher habe ich mir zunächst ein Interface gemacht, dass die Objekte immer implementieren müssen (Also int ID und string Name) und ein UserControl angelegt in dem eine TextBox und eine ListBox erhalten sind. Via DependencyPropertys kann man dann den aktuellen Text der TextBox, die Suchliste und das aktuelle Item der ViewBox setzen. Ganz grob funktioniert das ganze auch schon :)

Aber jetzt stelle ich mir hauptsächlich die Frage wie ich das Design davon umsetze. Die ViewBox soll schließlich nicht das Layout verschieben sondenr -falls sichtbar- sich über alle anderen Elemente einfach drüber legen! Aber wie kann ich das anstellen?

Habe ich überhaupt einen guten Ansatz gewählt oder würdet ihr es komplet anders lösen?

Vielen Dank!!!
Määx
Määx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 123



BeitragVerfasst: Mo 24.03.14 14:46 
Habe es jetzt wie folgt "gelöst":
anstelle einer ListBox habe ich eine ComboBox verwendet und diese unter die TextBox gelegt. Anstelle der Visibiltiy-Eigenschaft setzte ich nun immer die ISDropDownOpened. Das ist sicherlich nicht die beste Lösung (in einem mehrzeiligen Textfeld verschwinden vermutlich die ersten Zeilen der ComoBox) aber klappt für ein normales Textfeld so weit eigentlich ganz gut :)

Für weitere Lösungsvorshcläge bin ich natürlich offen!