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)
--- Identische ComboBoxen mehrfach erstellen (https://www.mycsharp.de/wbb2/thread.php?threadid=122634)


Geschrieben von c#atriga am 13.02.2020 um 14:54:
  Identische ComboBoxen mehrfach erstellen
Hätte da mal eine Verständnisfrage:

Folgende Ausgangslage:

WPF Anwendung mit 3 Combo Boxen. Via Schaltfläche sollen zusätzliche ComboBoxen hinzugefügt werden. Jede Combo Box soll immer die 10 gleichen Items haben.

Ist es der beste Weg eine neue Klasse die von ComboBoxen erbt zu erstellen, welche gleich von Anfang die Items haben?

Hab ich das so richtig verstanden oder denke ich in die falsche Richtung?


Geschrieben von T-Virus am 13.02.2020 um 15:05:
 
Gibt einige Ansätze dafür.
Eine Lösung wäre z.B. eine Factory Methode bauen, die dir eine ComboBox fertig gefüllt liefert.
Eine Klasse wäre auch möglich.

Kommt auf den Anwendungsfall an.
Wenn du die ComboBox immer wieder brauchst, dann mach eine Klasse daraus sonst würde ich bei Single Use eine Factory Methode bauen.

T-Virus


Geschrieben von Th69 am 13.02.2020 um 16:39:
 
Bei WPF solltest du  [Artikel] MVVM und DataBinding verwenden und dann per DataBinding z.B. an ein  ItemsControl die zusätzlichen ComboBoxen erzeugen. Das ItemsControl.ItemTemplate enthält die ComboBox mit den vordefinierten Einträgen (bzw. auch diese solltest du per DataBinding binden, statt fest vorzugeben).
Und der Button triggert dann per ICommand das Erzeugen eines neuen Eintrags in der gebundenen ObservableCollection<T>.


Geschrieben von MrSparkle am 14.02.2020 um 15:36:
 
@T-Virus: Beides sind die falschen Herangehensweisen unter WPF.

Th69 hat es richtig erklärt. Code-Beispiele und ein Beispiel-Projekt finden sich in dem verlinkten Artikel.


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 19.02.2020 15:04