myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und XAML » In einer Autocompletebox das SelectedItem per Code richtig setzen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

In einer Autocompletebox das SelectedItem per Code richtig setzen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
jansenpeter jansenpeter ist männlich
myCSharp.de-Mitglied

Dabei seit: 30.10.2013
Beiträge: 38


jansenpeter ist offline

In einer Autocompletebox das SelectedItem per Code richtig setzen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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?
16.07.2014 09:37 Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.410
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hast du in deiner ItemSource die INotifyPropertyChanged-Schnittstelle implementiert?
16.07.2014 09:46 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
jansenpeter jansenpeter ist männlich
myCSharp.de-Mitglied

Dabei seit: 30.10.2013
Beiträge: 38

Themenstarter Thema begonnen von jansenpeter

jansenpeter ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Was ich vergaß zu erwähnen, die ItemSource ist kein Binding sondern eine AutoCompleteStringCollection
16.07.2014 09:54 Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.410
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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).

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am 16.07.2014 11:58.

16.07.2014 11:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
jansenpeter jansenpeter ist männlich
myCSharp.de-Mitglied

Dabei seit: 30.10.2013
Beiträge: 38

Themenstarter Thema begonnen von jansenpeter

jansenpeter ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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!
16.07.2014 13:27 Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.410
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Dann noch ein Versuch:

C#-Code:
autoCompleteBox.InvalidateVisual();
16.07.2014 14:28 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
jansenpeter jansenpeter ist männlich
myCSharp.de-Mitglied

Dabei seit: 30.10.2013
Beiträge: 38

Themenstarter Thema begonnen von jansenpeter

jansenpeter ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Auch schon versucht ;)
16.07.2014 16:53 Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.255
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
16.07.2014 19:09 Beiträge des Benutzers | zu Buddylist hinzufügen
jansenpeter jansenpeter ist männlich
myCSharp.de-Mitglied

Dabei seit: 30.10.2013
Beiträge: 38

Themenstarter Thema begonnen von jansenpeter

jansenpeter ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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 :)
22.07.2014 09:24 Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 4 Jahre.
_Cashisclay _Cashisclay ist männlich
myCSharp.de-Mitglied

Dabei seit: 29.10.2014
Beiträge: 253


_Cashisclay ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
14.05.2019 10:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 5 Jahre.
Der letzte Beitrag ist älter als 6 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 13.12.2019 04:19