ToolStripCombobox.SelecrededItem изменение не распространяется на обязательный источник

StackOverflow https://stackoverflow.com/questions/2729175

Вопрос

Мое связывание настроено как это:

        _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;

Свойство «AttaceUnunits» - это коллекция строк, а «Selectionunit» - это свойство строки. Теперь раскрывающийся список заполняется, как и ожидалось, но когда я выбираю и элемент в списке, изменение не распространяется на источник связывания. Любая идея, что я делаю не так?

Обновлять:

Я создал небольшой тестовый проект, и эта проблема возникает, когда добавляю панель инструментов в качестве подпункта другого настроителя. Если я добавлю панель инструментов напрямую в меню, все работает нормально. BindingContext не назначается на ToolStripCombobox при добавлении в качестве подпункта (см. Мой кодовый комментарий), и мое исправление, похоже, не делает то, что нужно, чтобы получить это на работу.

Нет правильного решения

Другие советы

Вы можете изменить

 _selectXAxisUnitViewModelBindingSource.DataSource = typeof(SelectXAxisUnitViewModel);

К

 _selectXAxisUnitViewModelBindingSource.DataSource = new SelectXAxisUnitViewModel();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top