myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Entwicklung (https://www.mycsharp.de/wbb2/board.php?boardid=3)
-- GUI: WPF und XAML (https://www.mycsharp.de/wbb2/board.php?boardid=85)
--- In einer Autocompletebox das SelectedItem per Code richtig setzen (https://www.mycsharp.de/wbb2/thread.php?threadid=112239)


Geschrieben von jansenpeter am 16.07.2014 um 09:37:
  In einer Autocompletebox das SelectedItem per Code richtig setzen
Hi,

ich habe folgendes Problem, ich habe in meinem MainWindow-Fenster eine Autocompletebox mit einer großen ItemSource im Hintergrund. Nun setze ich per drücken auf einen Button das SelectedItem der Autocompletebox auf einen Wert, der sich in der ItemSource befindet. Es wird ein SelectionChange-Event gefeuert.

SelectionChange-Event
Mittels dem SelectedItem lade ich Daten aus einer Datenbank und fülle Textboxen.

Problem: Mein Problem ist nun, wenn ich das SelectedItem der Autocompletebox dynamisch also aus dem Code heraus änder, dann macht er das zwar, aber er zeigt mir weder in der Autocompletebox den selektierten Wert an noch den Wert der Textboxen.

Wenn ich den Quellcode debugge sehe ich in den Eigenschaften der Textboxen, dass die Werte eingetragen wurden, diese aber nicht sichtbar werden.

Kann mir jemand helfen?


Geschrieben von Th69 am 16.07.2014 um 09:46:
 
Hast du in deiner ItemSource die INotifyPropertyChanged-Schnittstelle implementiert?


Geschrieben von jansenpeter am 16.07.2014 um 09:54:
 
Was ich vergaß zu erwähnen, die ItemSource ist kein Binding sondern eine AutoCompleteStringCollection


Geschrieben von Th69 am 16.07.2014 um 11:56:
 
Hallo,

ja, du hast recht und ich hätte ersteinmal danach suchen sollen, z.B.  Using the AutoCompleteBox in the WPF Toolkit ;-).

Ich habe noch  WPF AutoCompleteBox SelectedItem Binding Issue gefunden, was sich so ähnlich wie bei dir liest. Kannst ja mal zum Test ebenso eine MessageBox anzeigen lassen und schauen, ob du dann den Text in der AutoCompleteBox siehst.

Hast du denn SelectedItem bei dir gebunden oder arbeitest du nur im Code-Behind? Evtl. könnte der Binding Mode 'TwoWay' helfen (aber wahrscheinlich ist dies auch die Voreinstellung).


Geschrieben von jansenpeter am 16.07.2014 um 13:27:
 
Das was du sagst, dass mit der MessageBox und den Text ausgeben lassen, das habe ich bereits getan. Aber nicht hingeschrieben, weil es sonst noch mehr verwirrt hätte (ich hab da ein Händchen für)

Ich habe mir das SelectedItem ausgeben lassen, dann kommt genau das was ich auch haben möchte, genauso wie beim Text genau das selbige

Er geht ja auch durch das SelectionChanged-Events worin ich Textboxen fülle und andere Controls enable und disable. Was er aber alles nicht macht. Er geht eben nur durch, das Fenster verändert sich aber nicht!


Geschrieben von Th69 am 16.07.2014 um 14:28:
 
Dann noch ein Versuch:

C#-Code:
autoCompleteBox.InvalidateVisual();


Geschrieben von jansenpeter am 16.07.2014 um 16:53:
 
Auch schon versucht ;)


Geschrieben von MrSparkle am 16.07.2014 um 19:09:
 
Hi jansenpeter,

das Invalidieren eines Steuerelements sollte nicht die Lösung sein, das sollte ja das DataBinding übernehmen. Die berechtigte Frage von Th69, ob du Two-Way-Binding verwendest, hast du nicht beantwortet. Ohne deine Mithilfe und ohne einen konkreten Codeauschnitt (C# und XAML) kann man allerdings nur raten und nicht wirklich helfen.

Christian


Geschrieben von jansenpeter am 22.07.2014 um 09:24:
 
So,

dass mit der Autocompletebox habe ich nun erledigt, sehr geholfen hat mir folgendes Tutorial:  Tut

Hab mir ein Binding eingebaut mit TwoWay und das hat gefunktioniert. Danke für eure Hilfe :)


Geschrieben von _Cashisclay am 14.05.2019 um 10:38:
 
Beitrag schon ein wenig älter.

Tatsächlich gerade am selben Punkt stehen geblieben.

Die AutoCompleteBox von WpfToolkit brauch die TwoWay Bindung, scheint nicht voreingestellt zu sein.
Hat jemand schon mal geschafft für dieses Element ein Watermark zu setzen?

Krieg ich aktuell nicht hin, gibts dort irgendwas? Habs mal den TextBoxHelper von MahApps versucht, der hat dort leider nichts anzeigen könnten.

Grüße


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 14.12.2019 12:24