Ich bin etwas neu in C# und WPF-Projekten. Also hier ist mein Problem.Ändern Sie den Combobox-Wert entsprechend einem anderen Combobox-Wert?
Ich habe 2 Combobox mit String-Listen gefüllt.
Je nach Wert meiner ersten Combobox möchte ich die in der zweiten Combobox verfügbare Liste ändern.
Hier ist mein Code:
public partial class MainWindow : Window
{
//creation de listes
List<string> themesE17 = new List<string>();
List<string> themesH17 = new List<string>();
List<string> themesE16 = new List<string>();
List<string> themesH16 = new List<string>();
public MainWindow()
{
InitializeComponent();
initLists();
string value = comboSaison.Text;
Console.WriteLine("The value of season combobox " + value);
}
public void initLists()
{
//saison 2017
themesE17.Add("Ete 17 Theme1");
themesE17.Add("Ete 17 Theme2");
themesH17.Add("Hiver 17 Theme1");
themesH17.Add("Hiver 17 Theme2");
//saison 2016
themesE16.Add("Ete 16 Theme1");
themesE16.Add("Ete 16 Theme2");
themesH16.Add("Hiver 16 Theme1");
themesH16.Add("Hiver 16 Theme2");
}
private void comboSaison_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (comboSaison.Text == "Ete 2017")
{
comboTheme.ItemsSource = themesE17;
Console.WriteLine("1st if E17");
}
else if (comboSaison.Text == "Hiver 2017")
{
comboTheme.ItemsSource = themesH17;
Console.WriteLine("2nd if H17");
}
else if (comboSaison.Text == "Ete 2016")
{
comboTheme.ItemsSource = themesE16;
Console.WriteLine("3rd if E16");
}
else if (comboSaison.Text == "Hiver 2016")
{
comboTheme.ItemsSource = themesH16;
Console.WriteLine("4th if H16");
} else
Console.WriteLine("Error in selection !");
}
}
Aber es funktioniert nicht, mein Console.WriteLine
zeigt mir das Programm das ist, wenn Fälle in zufälliger Weise in allem geht, wenn ich meine Werte in der ersten Combobox wählen .
Hilfe wäre dankbar, danke!
Was die comboSaison ausgewählte Element wird, wenn Sie Ihre Auswahl ändern? Versuchen Sie es mit ComboSaison.SelectedItem und finden Sie heraus. –
ist es "Ete 2017" als ausgewählter Wert, also sollte es die themesE17 Liste in der Combobox mit dem Namen comboTheme @PeterB sein. – Jay
Mit Databinding denke ich, eine zuverlässigere Option wäre, an eine beobachtbare Sammlung von Strings in XAML zu binden, und aktualisieren Sie dann die Inhalt dieser Sammlung und nicht die Bindung. – LordWilmore