Consider a simple screen that contains a Lookup Editor to select a value and displays a selected record's details separately.
The editor is bound to the XPCollection component and the DataSourceUpdateMode option is set to OnPropertyChanged for the Lookup Editor to immediately update the UI if a user selects another value.
C#EditorAssignedTo.DataBindings.Add("EditValue", TasksSource, "AssignedTo!Key", false, DataSourceUpdateMode.OnPropertyChanged);
Actually, the editor will not refresh itself instantly.
Cause
XPCollection and Base XPO Classes are designed to provide backward compatibility with legacy DataSet-based WinForms applications. These classes make migration to XPO easy. The behavior described above is caused by the IEditableObject interface implementation and copies the DataSet behavior. Once the editing operation started (the IEditableObject.BeginEdit method is called), XPCollection stops raising the ListChanged event for changes made through data bindings until the IEditableObject.EndEdit or IEditableObject.CancelEdit method is executed.
Solution
We suggest using a special component designed for WinForms data binding: XPBindingSource. For convenience, it is designed similarly as the standard BindingSource component. Use it to create data bindings in the visual designer and initialize the DataSource property at run time. Refer to the following example for details: How to Bind Data to WinForms Controls.