Frage

Meine Bindung als diese ein:

        _selectXAxisUnitViewModelBindingSource = new BindingSource();
        _selectXAxisUnitViewModelBindingSource.DataSource = typeof(SelectXAxisUnitViewModel);

        _selectedUnitComboBoxBindingSource = new BindingSource();
        _selectedUnitComboBoxBindingSource.DataSource = _selectXAxisUnitViewModelBindingSource;
        _selectedUnitComboBoxBindingSource.DataMember = "AvailableUnits";

        _selectedUnitComboBox.ComboBox.DataSource = _selectedUnitComboBoxBindingSource;
        _selectedUnitComboBox.ComboBox.DisplayMember = String.Empty;
        _selectedUnitComboBox.ComboBox.ValueMember = String.Empty;
        _selectedUnitComboBox.ComboBox.DataBindings.Add("SelectedItem",
                                                        _selectXAxisUnitViewModelBindingSource, 
                                                        "SelectedUnit", true, DataSourceUpdateMode.OnPropertyChanged);

        // this is a bug in the .Net framework: http://connect.microsoft.com/VisualStudio/feedback/details/473777/toolstripcombobox-nested-on-toolstripdropdownbutton-not-getting-bindingcontext
        _selectedUnitComboBox.ComboBox.BindingContext = this.BindingContext;

Die Eigenschaft „AvailableUnits“ ist eine Sammlung von Strings und die „SelectedUnit“ ist eine String-Eigenschaft. Nun wird die Dropdown-Liste bevölkert wie erwartet, aber wenn ich wählen und Element in der Liste, wird die Änderung nicht an die Bindungsquelle propagiert. Jede Idee, was ich tue falsch?

Update:

ich ein kleines Testprojekt erstellt und dieses Problem tritt auf, wenn ich eine ToolStripComboBox als Unterpunkt eines anderen ToolStripItem hinzuzufügen. Wenn ich die ToolStripItem direkt an das alles Menustrip hinzufügen funktioniert gut. Das Binding ist nicht auf die ToolStripComboBox zugewiesen, wenn sie als Unterpunkt hinzugefügt (siehe meine Code-Kommentar) und meine fix scheint nicht etwas zu tun notwendig, dies zu Arbeit zu erhalten.

Keine korrekte Lösung

Andere Tipps

Können Sie

ändern
 _selectXAxisUnitViewModelBindingSource.DataSource = typeof(SelectXAxisUnitViewModel);

 _selectXAxisUnitViewModelBindingSource.DataSource = new SelectXAxisUnitViewModel();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top