Ich habe eine Combobox in meiner MainWindow.xaml-Datei wie folgt:
<ComboBox Name="material1ComboBox"
HorizontalAlignment="Center"
MinWidth="100"
ItemsSource="{Binding ViewProperties.MaterialDropDownValues}"
SelectedValue="{Binding ViewProperties.Material1SelectedValue}"
SelectionChanged="Material1ComboBoxSelectionChanged">
</ComboBox>
Ich habe den Datentext im Codebehind zugewiesen, indem ich this.datacontext = this
.
Ich habe eine ViewProperties
auf die als Eigenschaft in der Datei MainWindow
und ist eine Klasse, die INotifyPropertyChanged implementiert und die MaterialDropDownValues
als eine Eigenschaft.
Ich habe sogar den Namen des MaterialDropDownValues
zu sein ObservableCollection
.
Das Problem ist, dass die Datenbindung bei der Initialisierung funktioniert, aber wenn die MaterialDropDownValues
Eigenschaft geändert wird, werden die Werte der Combobox nicht aktualisiert.
Ich habe folgendes in der ViewProperties
Klasse:
public ObservableCollection<string> MaterialDropDownValues
{
get { return this.materialDropDownValues; }
set
{
this.materialDropDownValues = value;
OnPropertyChanged("MaterialDropDownValues");
}
}
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
Gibt es eine Idee, warum das nicht funktioniert? Alle anderen Antworten, die ich finden konnte, geraten, INotifyPropertyChanged zu implementieren und die Eigenschaft eine observablecollection zu machen.