Hallo,
normalerweise binde ich eine Combobox immer per Binding an eine Liste und das klappt auch. In einigen einfacheren Fällen möchte ich jedoch manuelle Werte mit Add hinzufügen. Wenn es sich nur um Werte (und nicht um ComboBoxItems) handelt, kann ich prima per SelectedValue= den Wert zuweisen.
Sobald ich Formatierung der Items benötige, muss ich ja z. B. ein ComboBoxItem hinzufügen. Hier habe ich aber das Problem, wenn ich das SelectedValue setzen will, klappt es nicht. (Es bleibt null und es ist nichts ausgewählt).
ComboBoxItem CItem = new ComboBoxItem();
CItem.Content="15";
CB.Items.Add(CItem);
Wie kann ich nun folgendes machen:
CB.SelectedValue="15";
Bitte nicht über SelectedIndex=0 o. ä. Ich möchte direkt den Wert setzen. Benötige ich dafür im XAML-Code noch ein SelectedValuePath="{Binding... oder ähnliches? X(
Vielen Dank!
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 :]
Hallo m.grauber,
Wenn du der ComboBox eine ObservableCollection als ItemsSorce übergibst, kannst du prima der ObservableCollection Items hinzufügen und diese auch per Code auswählen. So wie du es machst geht es nur umständlich. Ich habe noch keinen Grund gefunden Items.Add der ItemsSource vorzuziehen.
Gruß
Michael
Hallo Michael,
Danke! Ja, so mache ich es normalerweise auch. Manchmal - z. B. wenn im Combo einfach nur Jahreszahlen dargestellt werden, finde ich es aber als zu viel Overhead, noch eine Liste oder Observable Collection zu erstellen.
Ich dachte, es geht in diesem Fall sogar einfacher. Aber wenn Du mir schreibst, dass dies nicht so ist, hilft mir das auch weiter. 👍
Ich dachte nur, dass evtl. ein XAML-Binding wie SelectedValuePath="{Binding ComboBox.Content}" oder so ähnlich geht.
Evtl. hat ja noch jemand eine einfache Idee?
Gruß
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 :]
finde ich es aber als zu viel Overhead, noch eine Liste oder Observable Collection zu erstellen.
Nein, ich finde ich nicht.
Ich dachte, es geht in diesem Fall sogar einfacher
Ich kann nicht erkennen wie das manuelle Updaten der ComboBox einfacher sein soll. Zusätzlich dürfen dann anfänglich die Items nicht mit ItemsSource hinzugefügt werden, sonden es muss mit einer Schleife jedes einzeln mit Items.Add hinzugefügt werden.
Hallo Michael,
naja, die ObservableCollection mit den Einträgen bleibt ja dann die ganze Zeit zusätzlich im Speicher.
Die Schleife wäre bei mehreren Jahresangaben im Combo trotzdem notwendig um die Observable Collection zu füllen.
Aber im Prinzip hast Du schon recht. Und da ich ohnehin lieber nach einem gleichartigen Schema vorgehe, werde ich es wohl in das Binding an eine Liste ändern.
Vielen Dank nochmals! 👍
Gruß
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 :]
Die Schleife wäre bei mehreren Jahresangaben im Combo trotzdem notwendig um die Observable Collection zu füllen.
Theoretisch schon (.NET intern), praktisch (für dich) nicht:
ObservableCollection<int> years = new ObservableCollection<int>(Enumerable.Range(2000,21)); //Jahresliste von 2000-2020
Hallo Michael,
8o Wow! - dass ist ja wirklich heiß! 👍
Vielen Dank nochmals! Gehe nun auch über die Collection! Ist wirklich viel besser.
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 :]