Breaking Changes in DXperience v2009 vol 1

04 March 2009

As usual, whenever we make changes to our products in order to accommodate new features, add enhancements, or fix issues, there is the possibility that we introduce a breaking change. We try and minimize these as much as we are able, but sometimes we have no choice.

These are the breaking changes that will be introduced in DXperience v2009.1:


SettingsCookies.StoreColumnsVisibilePosition has been renamed to SettingsCookies.StoreColumnsVisiblePosition

  • Typo fixed, visiBILE has been changed to visiBLE.


The logic of rendering the ASPxDataView control to a page has been changed - it is now always rendered, even if it's empty

  • Previously, an empty ASPxDataView control that didn’t contain data items wasn't rendered into the page, and it couldn't be accessible on the client side via code. Now, the rendering logic of the ASPxDataView control has been changed and it is always rendered into the page, be it empty or not. For an empty ASPxDataView control a specific explanatory text or a custom template can now be rendered.

Core Scheduler

(Note: these changes apply to both ASPxScheduler and XtraScheduler)

CollectionChangedAction enum has been moved from the DevExpress.XtraScheduler namespace to the DevExpress.Utils namespace

CollectionChangedEventArgs<T> has been moved from the DevExpress.XtraScheduler.Native namespace to the DevExpress.Utils namespace

CollectionChangedEventHandler<T> has been moved from the DevExpress.XtraScheduler.Native namespace to the DevExpress.Utils namespace

CollectionChangingEventArgs<T> has been moved from the DevExpress.XtraScheduler.Native namespace to the DevExpress.Utils namespace

CollectionChangingEventHandler<T> has been moved from the DevExpress.XtraScheduler.Native namespace to the DevExpress.Utils namespace

DXCollection<T> has been moved from the DevExpress.XtraScheduler namespace to the DevExpress.Utils namespace

DXCollectionBase<T> has been moved from the DevExpress.XtraScheduler namespace to the DevExpress.Utils namespace

DXCollectionWithSetItem<T> has been moved from the DevExpress.XtraScheduler namespace to the DevExpress.Utils namespace

NotificationCollection<T> has been moved from the DevExpress.XtraScheduler namespace to the DevExpress.Utils namespace

DevExpress.XtraScheduler.CustomFieldCollection.Capacity property has been removed

Several non-generic collection-related classes have been marked obsolete

  • The following non-generic classes are now obsolete: NotificationCollection, CollectionChangingEventHandler, CollectionChangingEventArgs, CollectionChangedEventHandler, CollectionChangedEventArgs.

The DevExpress.XtraScheduler.CustomFieldCollection class no longer implements the IList interface

  • In general, this breaking change shouldn't have any effect on your applications, unless you have directly cast a CustomFieldCollection object to the IList interface.

The DevExpress.XtraScheduler.CustomFieldCollection class no longer implements the ICollection interface

  • In general, this breaking change shouldn't have any effect on your applications, unless you have directly cast a CustomFieldCollection object to the ICollection interface.

DXCharts for WPF

DXCharts for WPF v2009 vol 1 is not compatible with v2008 vol 3 due to numerous API changes. For example:

  • The AreaSeries class has been renamed to the AreaSeries2D.
  • The LineSeries class has been renamed to the LineSeries2D.
  • The BarModelKind class has been renamed to the Bar2DModelKind.
  • The BarSeries class has been renamed to the BarSideBySideSeries2D.
  • The BarModelDescriptor class has been renamed to the Bar2DModelDescriptor.
  • The MarkerKind class has been renamed to the Marker2DKind.
  • The MarkerModelDescriptor class has been renamed to the Marker2DModelDescriptor.
  • The AxisLabelPosition enumeration has been renamed to the Axis3DLabelPosition.
  • The BarLabelPosition enumeration has been renamed to the Bar2DLabelPosition.
  • The SeriesXYUnwindingAction class has been renamed to the SeriesUnwindingAction.
  • The LineSeries2DBase class has been removed. Now, the LineSeries2D and AreaSeries2D classes are descendants of the PointSeries2DBase class.
  • The IMarker2D interface has been introduced. This interface allows you to access series marker properties.
  • The PieSeries2D and PieSeries3D classes have been derived from the base PieSeriesBase class.
  • The VisualContainer2D and VisualContainer3D classes have been united into a single VisualContainer class.
  • The BarModelDescriptor.BaseColor property has been removed.
  • Te BarSeries3D.BaseColor property has been removed.
  • The MarkerModelDescriptor.BaseColor property has been removed.
  • The SeriesLabel.BaseColor property has been removed.
  • The PieSeries3D.PercentOptions property has been removed. New PercentView class has been introduced to substitute for this property. For now, this class contains the attached PercentOptions property which can be set to the PointOptions object, if the series supports percentages (e.g. PieSeries3D, AreaFullStackedSeries2D etc.).
  • The type of PieSeries3D.HoleRadiusPercent property was changed. The PieSeries3D.HoleRadiusPercent has been moved to PieSeriesBase class, and type of HoleRadiusPercent property was changed from int to double.

eXpressApp Framework (XAF)

The CollectionSourceBase class has been refactored

  • The CollectionSourceBase.Collection property now raises an exception when the CollectionSourceBase instance is being initialized (that is, the IsInitialization property returns true). This allows us to prohibit access to the Collection until all Controllers are initialized.
  • So, it is now impossible to use the Collection property in a Controller's OnActivated method or Activated event handler. The CollectionSourceBase.CollectionChanged event should be used instead.

The invisible ViewsNavigation Action Container has been removed from the Main Form's toolbar

  • Previously, the ShowNavigationItem Action was mapped to the following Action Containers:
    • NavBarActionContainer. It displayed the Action via a navbar.
    • ActionContainerBarItem. It didn't display the Action, but it was used to support keyboard shortcuts for the Action's items.
  • The ActionContainerBarItem Action Container now displays the Action as an item in the View menu of the Main Form Template. So, the Action is displayed by two controls in the main form: navbar and menu item.

Several obsolete methods have been removed

  • The methods that were removed are: RuleSetValidationResult.GetOldValidationResults(Boolean returnOnlyInvalid) and RuleSetValidationResult.GetOldValidationResults()

ActionContainer's events have been refactored

  • The ActionContainerBarItem.CreateCustomActionControl and DefaultBarActionItemsFactory.CreateCustomBarItemControl events, which were used for backward compatibility, have now been removed. In addition the non-generic CreateCustomActionControlEventArgs and CreateCustomActionControlArgs classes have been removed as well. In order to access the controls created for Actions, you should use the ActionContainerBarItem.CustomizeActionControl and DefaultBarActionItemsFactory.CreateCustomBarItemControl events. The latter event is static.
  • The BarActionItemsFactory.BarItemChanged event now has the arguments of the BarItemChangedEventArgs type.
  • The BarActionItemsFactory<ItemInfoType> class' CreateBarItem protected method has been renamed to "CreateActionItem".

Setters for several properties have been removed

  • Setters for the following properties have been removed: RuleValidationResult.IsValid, RuleValidationResult.ErrorMessage, RuleSetValidationResultItem.Rule, RuleSetValidationResultItem.Target, RuleSetValidationResultItem.ErrorMessage

Actions with the Unspecified category

  • The Default Action Container has been removed from the context menu that can be invoked for List Views. So, Actions with the Unspecified category are no longer displayed in the context menu. They are only visible in the toolbar

The point in time when the ModuleBase.Setup method is called has been changed

  • Previously, the ModuleBase.Setup method was not called by the XafApplication.Setup method. Now, it's called just after a module is added to the XafApplication.Modules list.
  • Non-persistent properties are now excluded from the search performed by the "Filter by Text" Action
  • To add a non-persistent property to the set of the properties that are used by the "Filter by Text" Action's SearchCriteriaBuilder to generate a filter criterion, apply the SearchMemberOptions attribute with the SeachMemberMode.Include parameter value to this property.


The PointOverlappingOptions.AttractToMarker and PointOverlappingOptions.IndentFromMarker obsolete properties have been removed

  •     Instead, use the OverlappingOptions.Mode and SeriesLabelBase.LineLength properties, respectively.

The Side-by-side Bars behavior has been changed

  •     If two series of the Bar, the Side-by-side Range Bar, or the Side-by-side Gantt series view have the same X-axis and different Y-axes, they are now placed side-by-side (whereas in previous versions, they were overlapped).


GridColumn.Caption is set to an empty string while populating columns

  • By default, when populating columns, the GridColumn.Caption property is set to an empty string. The actual column captions are generated automatically based on field names. However, you can provide custom column captions by assigning them to the GridColumn.Caption property.

The default value of the CardView.CardCaptionFormat is now the empty string, and the actual value is retrieved from the resources

  • The CardView.CardCaptionFormat property has been made localizable.
  • Now the default value retrieved by this property is the empty string. The actual value is specified by the resources files.
  • You can still change the CardCaptionFormat property if you want to override the default value stored in the resource files.

By default, now pressing the PAGE DOWN key focuses the bottom visible record

  • This change to the functionality improves the navigation and selection behavior when using the Page Down key. From now on, if the top record is focused, pressing Page Down moves focus to the bottom visible record. In multiple selection mode, pressing Shift + Page Down selects all the records between the top and the bottom visible records, and moves focus to the bottom record. This means an end-user will clearly see the current selection. In previous versions, the selection was scrolled out of view.
  • To revert to the old navigation mode, set the GridOptionsNavigation.UseOfficePageNavigation property to false.

The type of the CacheValuesOnRowUpdating property has been changed

  • This version corrects a typo in the name of the CacheValuesOnRowUpdating property's type.

When an end-user changes the summary type via context menus, the summary values are now formatted according to the column's DisplayFormat

  • A column's cells are formatted according to the GridColumn.DisplayFormat property. In v9.1, the summary values are also formatted using this format.

While copying cells to clipboard, the header text is now also copied to the clipboard

The CardOptionsPrint.PrintSelectedCardOnly property, if set to true, now enables the printing and exporting of all selected cards

  • In previous versions, if this property was set to true, only the focused card was printed


When a report is exported, postbacks are now always used instead of callbacks

  • The ReportViewer.ExportViaPostback property has been removed, because it is now always treated as True.

Some ReportStringID constants have been removed because the corresponding properties' ReportStringID constants are now used instead

  • This was done in order to fix issue B32845.

The following ReportStringID constants have been removed:

  • STag_Name_FillColor
  • STag_Name_ForeColor
  • STag_Name_LineWidth
  • STag_Name_Angle
  • STag_Name_AnchorVertical
  • STag_Name_Stretch
  • STag_Name_Shape
  • STag_Name_FormattingRules
  • STag_Name_FormattingRuleSheet
  • STag_Name_Fillet
  • STag_Name_TailLength
  • STag_Name_TipLength
  • STag_Name_NumberOfSides
  • STag_Name_StarPointCount
  • STag_Name_Concavity
  • STag_Name_ArrowHeight
  • STag_Name_ArrowWidth
  • STag_Name_VerticalLineWidth
  • STag_Name_HorizontalLineWidth
  • STag_Name_PrintOn
  • STag_Name_OLAPConnectionString
  • STag_Name_DataSource
  • STag_Name_DataMember
  • STag_Name_DataAdapter
  • STag_Name_Text
  • STag_Name_BackColor
  • STag_Name_Font
  • STag_Name_LineDirection
  • STag_Name_LineStyle
  • STag_Name_Summary
  • STag_Name_AutoWidth
  • STag_Name_CanGrow
  • STag_Name_CanShrink
  • STag_Name_Multiline
  • STag_Name_WordWrap
  • STag_Name_Symbology
  • STag_Name_Module
  • STag_Name_AutoModule
  • STag_Name_BarCodeOrientation
  • STag_Name_ImageSizing
  • STag_Name_ShowText
  • STag_Name_SegmentWidth
  • STag_Name_CheckState
  • STag_Name_Image
  • STag_Name_ImageUrl
  • STag_Name_ReportSource
  • STag_Name_Borders
  • STag_Name_BorderColor
  • STag_Name_BorderWidth
  • STag_Name_PageInfo
  • STag_Name_StartPageNumber
  • STag_Name_Format
  • STag_Name_RepeatEveryPage
  • STag_Name_PrintAtBottom
  • STag_Name_GroupUnion
  • STag_Name_GroupFields
  • STag_Name_SortFields
  • STag_Name_KeepTogether
  • STag_Name_Level
  • STag_Name_PrintOnEmptyDataSource
  • STag_Name_ReportUnit
  • STag_Name_StyleSheet
  • STag_Name_Watermark
  • STag_Name_FilterString

BrickStringFormat: The default value of a PrototypeKind property has been changed from BrickStringFormatPrototypeKind.Default to BrickStringFormatPrototypeKind.GenericTypographic

  • This change may cause a report layout to be changed in some specific situations (e.g. the height of labels may be changed).

The XtraReport.BackColor property no longer changes the page color

  • This change was done in order to fix issue B32611. Use the XtraReport.PageColor property instead


The type of the TreeListPainter.NodeDragImages and TreeListPainter.IndicatorImages properties has been changed to DevExpress.Utils.ImageCollection

Free DevExpress Products - Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We'll be happy to follow-up.
No Comments

Please login or register to post comments.