Laden...

WPF Elemente mit einem Click Event generieren

Erstellt von AMRnoni vor einem Jahr Letzter Beitrag vor einem Jahr 612 Views
A
AMRnoni Themenstarter:in
3 Beiträge seit 2022
vor einem Jahr
WPF Elemente mit einem Click Event generieren

Guten Tag alle zusammen,

ich versuche mich langsam in die ganze C# & WPF Thematik einzuarbeiten.
Ich möchte mit einem Button Click Event eine Combobox auf meiner Oberfläche erzeugen und da habe ich leider keinerlei Ansatz wie ich das Anstellen soll, geschweige den ob dies überhaupt möglich ist. Ich hatte überlegt es mit einem UserControl zu versuchen, dabei bin ich mir nicht sicher wie ich diesen in der Click Methode aufrufe.
Evtl. gibt es schon einen Beitrag dazu und ich habe nur nach den falschen Schlüsselworten gesucht.

Danke schonmal im Voraus.

4.942 Beiträge seit 2008
vor einem Jahr

Hallo und willkommen,

du kannst zwar mit C#-Code genauso wie z.B. in Windows Forms, Steuerelemente erzeugen (z.B. mittels UIElementCollection.Add), bei WPF benutzt man jedoch hauptsächlich direkt XAML (z.B. Templates).
Besser ist jedoch, du benutzt (und lernst) gleich die empfohlene Verwendung mittels MVVM: [Artikel] MVVM und DataBinding
Statt mit Events wird bei MVVM dann mit Commands (ICommand) in dem ViewModel gearbeitet.

A
AMRnoni Themenstarter:in
3 Beiträge seit 2022
vor einem Jahr

Danke für die schnelle Antwort.

Dann werde ich erstmal versuchen MVVM und DataBinding zu verstehen.

G
154 Beiträge seit 2015
vor einem Jahr

Wozu und in welchem Kontext willst Du das denn machen?
Sollen mehrere ComboBoxen erscheinen (Liste), wenn man öfter Klickt, oder ist das eher so eine an/aus-Sache, bei der es vielleicht auch einfach reicht die ComboBox ein/auszublenden?

A
AMRnoni Themenstarter:in
3 Beiträge seit 2022
vor einem Jahr

Grüße Gimmick,

ja es sollen mehrere ComboBoxen erscheinen.
Ich möchte aus der Auswahl aus den ComboBoxen eine "Route" definieren.

G
154 Beiträge seit 2015
vor einem Jahr

Wenn die in irgendeiner Weise (horizontal, vertikal, ...) aufgelistet werden sollen, kannst Du z.B. das Control "ItemsControl" (einzelne Items kann man nicht auswählen) oder eine ListBox (einzelne Items kann man auswählen) ansehen.

Dafür schaust Du Dir dann wiederum den Hinweis auf das Databinding an und bindest die ItemsSource der Liste an ein passendes Collection Objekt (List, ObservableCollection,..) und verwendest als Template für die Darstellung innerhalb des Listen-Controls eine ComboBox.

Am Ende fügst Du also keine ComboBoxen in das GUI ein, sondern Du fügst Objekte in deine Liste ein und das Control stellt für jedes Objekt eine ComboBox dar. Wie Du dann die ComboBoxen befüllst, hängt u.A. davon ab, ob sich die Inhalte unterscheiden.

Da gibt es auch bei MS auf den Seiten der Controls Beispiele für.

D
6 Beiträge seit 2022
vor einem Jahr
MVVM mit Click ComboBox anzeigen

Hallo,

für dieses Ereignis musst du zuerst entscheiden ob du direkt in der Xaml.cs den Code hineinschreibst. Ich selbst richte mich immer nach dem Umfang der App. Hat die App nur eine einzige Funktion so würde ich pers. kein MVVM verwenden.

Du kannst eine ComboBox (System.Windows.Controls) direkt im Programm erstellen und z.B in einem Grid einbinden. Sieht wie folgt aus (Code Behind):


methode() {
ComboBox box = new ComboBox();
grid.Chrildren.Add(box);
box.SetValue(Grid.RowProperty, 1);
box.SetValue(Grid.ColumnProperty, 1);
}

Wenn du das mit MVVM machen möchtest lese dich in die Thematik etwas hinein. Ist am ANfang vlt. etwas kompliziert, in summe ist es aber leicht aber etwas mehr schreibarbeit, am ende wirst du es bei großen Apps nicht bereuen!

LG