https://bugzilla.novell.com/show_bug.cgi?id=664835
https://bugzilla.novell.com/show_bug.cgi?id=664835#c0 Summary: Binding not started on when BindingContext null and BindingContextChanged raised Classification: Mono Product: Mono: Class Libraries Version: 2.6.x Platform: x86 OS/Version: Windows 7 Status: NEW Severity: Normal Priority: P5 - None Component: Windows.Forms AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1036 Safari/532.5 Binding doesn't start when BindingContext starts as null, then BindingContextChanged is fired later. Reproducible: Always Steps to Reproduce: The following unit test reproduces the problem: [Test] public void Test_StartBindingOn_BindingContextChanged() { TestDataSource dataSource = new TestDataSource(); dataSource.IntProperty = 2; TextBox textBox = new TextBox(); textBox.DataBindings().Add("Text", dataSource, "IntProperty"); // data binding added before textBox is added to the form, and doesn't have a BindingContext Form.Controls.Add(textBox); Form.Show(); Application.DoEvents(); AssertEquals("2", textBox.Text, "Data binding started"); } class TestDataSource { public event EventHandler IntPropertyChanged; public const int IntPropertyDefaultValue = 5; int intProperty = IntPropertyDefaultValue; public int IntProperty { get { return intProperty; } set { intProperty = value; if (IntPropertyChanged != null) { IntPropertyChanged(this, EventArgs.Empty); } } } } Actual Results: The unit test fails. Expected Results: The unit test should pass as it does with ms.net Code added to ControlBindingsCollection constructor: public ControlBindingsCollection (IBindableComponent control) { bindable_component = control; // ----- code added here ----- // EventDescriptor bindingContextChanged = TypeDescriptor.GetEvents(control)["BindingContextChanged"]; if (bindingContextChanged != null) { bindingContextChanged.AddEventHandler(control, new EventHandler(delegate { foreach (Binding binding in this) { binding.Check(); } })); } // ----- code added here ----- // -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
