2 Stimmen

INotifyPropertyChanged funktioniert nicht mit WPF-Datenbindung

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X