سؤال

تم إعداد الربط الخاص بي على هذا:

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

الخاصية "AvverseUnits" عبارة عن مجموعة من الأوتار و "SelectionUnit" عبارة عن تمرين سلسلة. الآن يتم ملء قائمة القائمة المنسدلة كما هو متوقع ، ولكن عندما أقوم بتحديد العنصر في القائمة ، لا يتم نشر التغيير إلى مصدر الربط. أي فكرة عما أفعله خطأ؟

تحديث:

لقد قمت بإنشاء مشروع اختبار صغير وتحدث هذه المشكلة عندما أضيف ToolStripCombobox باعتبارها عنصرًا فرعيًا لأدوات أخرى. إذا قمت بإضافة ToolStripItem مباشرة إلى Menustrip ، فكل شيء يعمل بشكل جيد. لا يتم تعيين BindingContext إلى ToolStripCombobox عند إضافته كعنصر فرعي (راجع قلة الكود) ولا يبدو أن الإصلاح الخاص بي يفعل ما هو ضروري للحصول على هذا العمل.

لا يوجد حل صحيح

نصائح أخرى

هل يمكن أن تغير

 _selectXAxisUnitViewModelBindingSource.DataSource = typeof(SelectXAxisUnitViewModel);

إلى

 _selectXAxisUnitViewModelBindingSource.DataSource = new SelectXAxisUnitViewModel();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top