Laden...

WPF - TextBox oder Combobox SelectionChanged im XAML oder Loaded

Erstellt von m.grauber vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.434 Views
M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren
WPF - TextBox oder Combobox SelectionChanged im XAML oder Loaded

Hallo,

bei der WPF Combobox gibt es ein SelectionChanged.

Wenn das bereits im XAML-Code angebunden wird, feuert es auch beim Öffnen der Form, was ja eigentlich vermieden werden sollte.

Wenn man es mit += im Code-Behind (Loaded) anbindet, funktioniert es wie gewünscht.

**
Heißt das, es ist

a) ein besserer Stil es mit += im Code-Behind anzubinden und
b) macht ihr es bei allen anderen Controls (auch Textbox etc.) immer mit +=**

Danke

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

1.378 Beiträge seit 2006
vor 13 Jahren

Zu a) Stil ist Geschmackssache. Ich bevorzuge es soviel wie möglich in XAML abzuhandeln.
Zu b) Siehe (a).

Bei einem kleinen Versuch gerade eben, hat das SelectionChanged Event nicht automatisch ausgelöst. Es sollte nur auslösen wenn sich die Selektion auch wirklich verändert was es bei dir wahrscheinlich auch tut.

Lg XXX

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo xxxprod,

Danke für Deine Meinung. 👍

Bei mir löst das SelectionChanged wegen dem Datenbinding beim Öffnen 1x aus.

Mal sehen, was die Anderen sagen.

Grüße

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

3.430 Beiträge seit 2007
vor 13 Jahren

Hallo m.grauber,

du kannst das auch direkt über deine Collection machen.
D.h. du hast eine Liste von Elementen welche du an die ComboBox bindest und zusätzlich musst du noch IsSynchronizedWithCurrentItem="True" setzen.

Danach kannst du direkt aus dem Code auf dem CollectionView der Liste zugreifen und auf das CurrentChanged Event hören.

Das hat den Vorteil dass du im XAML-Code nicht die Events registrieren musst und total unabhängig von der GUI bist.

Gruss
Michael

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo michlG,

danke auch für Deine Lösung 👍

Auf eine solche Idee bin ich noch überhaupt nicht gekommen. Das ist scheinbar auch der Mehrschicht-Ansatz.

Das klingt auch sehr interessant und das werde ich mir ansehen!

Grüße

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]