Breaking Change BC5087
Visible to All Users

Core - The IObjectSpace.ObjectChanged event is not raised in response to the editor's ControlValueChanged event

What happened
In versions prior to v19.2, the IObjectSpace.ObjectChanged event is raised each time you modify a control value in a DetailView, for instance, when you enter a letter in a text box.
This behavior has the following negative side effects:

  1. It slows down the UI if complex logic is attached to IObjectSpace.ObjectChanged event handlers. For instance, in user scenarios with many Conditional Appearance rules. (T705042Q360826).
  2. The ObjectSpace.ObjectChanged event arguments contain old values when the event is raised in response to unfinished control value changes. New control values are not propagated to the business object until control editing is finished.

In v19.2, we disabled this behavior by default.

How to update your application
To make sure that your app behaves correctly after this change, follow this known best practice for your data model: PropertyChanged Event in Business Classes.

NOTE: if persistent objects do not send INotifyPropertyChanged notifications about their property changes, these changes will NOT be stored in a database.

How to restore the previous behavior
In v19.2, set the DetailView.RaiseObjectChangedOnControlValueChanged property or the static DetailView.DefaultRaiseObjectChangedOnControlValueChanged field to True.

How to enable the new behavior in versions prior to v19.2
Set the DetailView.RaiseObjectChangedOnControlValueChanged property to False (example).

Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.