Hallo zusammen,
ich habe ein Problem mit meinen ComboBoxen in Silverlight 4 und bin am verzweifeln, da ich nicht heraus finde wo der Fehler ist.
Im Internet hab ich schon gesucht, aber alles was ich finde, basiert auf 1 ComboBox.
Folgendes Szenario:
Es gibt 2 ComboBoxen. In der ComboBox1 werden Hersteller eingefügt. Die ComboBox2 soll dann Varianten bekommen, in abhängigkeit vom dem gewählten Hersteller.
Im moment habe ich das folgend aufgebaut:
in der XAML Datei definiere ich 2 ComboBoxen, welche ich dann im Backend fülle.
Die ComboBox1 binde ich an eine List<Hersteller> was mir die Einträge auch korrekt anzeigt.
Im SelectionChanged-Event der ComboBox1 lade ich dann aus der Datenbank die Varianten der Hersteller nach und fülle damit auch eine List<HerstellerVariante> und binde die an die ComboBox2.ItemsSource.
Nun das Problem. Die ComboBox 2 wird zwar dann befüllt, aber genau nur 1x.
Danach ändert sich nicht an den Einträgen mehr.
Ich habe schon geprüft ob die List<HerstellerVariante> auch richtig gefüllt wird, was es auch tut.
Wo hab ich da einen Denkfehler?
Oder kennt jemand eine Seite, wo genau so ein szenario erklärt wird?
public class HerstellerVariante
{
public int ID { get; set; }
public string Value { get; set; }
}
Grüße Stephan
Versuch das Ganze mal mit INotifyPropertyChanged und/oder ObservableCollections.
There are 10 kind of people, those who understand binary and those who don't.
Zur Komplettheit: INotifyPropertyChanged-Schnittstelle
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Nabend zusammen,
Versuch das Ganze mal mit INotifyPropertyChanged und/oder ObservableCollections.
Das hatte ich auch schon versucht, aber ging nicht.
Ich hab aber die Lösung gefunden.
Man muss die Daten in einer Klasse unterbringen die folgend aussieht:
public class Hersteller
{
public Int32 HerstellerId { get; set; }
public string HerstellerName { get; set; }
public ObservableCollection<Variante> Varianten { get; set; }
}
public class Variante
{
public Int32 VarianteId { get; set; }
public string VarianteName { get; set; }
}
Das kann man dann an die comboBox1 im DataContext binden und damit dann im XAML Code nutzen.
In der comboBox2 sagt man dann im ItemsSource="{Binding ElementName=comboBox1, Path=SelectedItem}" .
Gruß Stephan