DataControlBase.AllowLiveDataShaping Property

Gets or sets whether the grid recalculates sorting/grouping/filtering/summaries automatically when data in a data source is modified outside the grid.

Namespace: DevExpress.Xpf.Grid

Assembly: DevExpress.Xpf.Grid.v20.1.Core.dll

Declaration

public bool? AllowLiveDataShaping { get; set; }
Public Property AllowLiveDataShaping As Boolean?

Property Value

Type Description
Nullable<Boolean>

true to recalculate sorting/grouping/filtering/summaries/scrollbar annotations automatically when data in a data source is modified outside the grid; otherwise, false.

Remarks

DevExpress GridControl and TreeListControl behave like a standard DataGrid when handling massive data updates from its source via the INotifyPropertyChanged interface. The grid handles only updates from rows/cells that are visible onscreen. This significantly improves performance when working with large volumes of data, where only a small number of rows are visible onscreen. However, this makes it impossible to update sorting/grouping/filtering/summary automatically. To force the grid to update sorting/grouping/filtering/summaries, set the AllowLiveDataShaping option to true. Note that in certain instances, this may lead to significant performance degradation when handling an intensive data update flow.

If the grid is bound to an IBindingList data source, all notifications, by default, are handled by the IBindingList implementor, and the sorting/grouping/filtering/summary is automatically recalculated. To disable this behavior, set the AllowLiveDataShaping property to false.

NOTE

If the grid is bound to either ICollectionView or RealTimeSource, the AllowLiveDataShaping property has no effect.

If the grid is bound to ICollectionView, the sorting/grouping/filtering/summary is handled by the ICollectionView implementor, thus is not updated automatically. To recalculate sorting/grouping/filtering manually, use the ICollectionView.Refresh method.

If the grid is bound to RealTimeSource, the sorting/grouping/filtering/summaries is updated regardless of the AllowLiveDataShaping property value, because RealTimeSource accumulates property updates and then raises the ListChanged event with the Rest type.

The AllowLiveDataShaping property does not work for columns that are bound to data fields using the ColumnBase.Binding property. Bind columns to data fields using the ColumnBase.FieldName property instead.

IList

IBindingList

(BindingList, DataView)

INotifyCollectionChanged

(ObservableCollection)

ICollectionView

Server Mode

Instant Feedback UI Mode

(AreObjectsThreadSafe = true)

Instant Feedback UI Mode

(AreObjectsThreadSafe = false)

INotifyPropertyChanged

AllowLiveDataShaping = null (default)

+ -

+ +

+ -

+ -

+ -

+ -

- -

INotifyPropertyChanged

AllowLiveDataShaping = false

+ -

+ -

+ -

+ -

+ -

+ -

- -

INotifyPropertyChanged

AllowLiveDataShaping = true

+ +

+ +

+ +

+ -

+ -

+ -

- -

No INotifyPropertyChanged

- -

- -

- -

- -

- -

- -

- -

Where:

  • - - Visible row values are not updated; sorting, grouping, filtering and data summaries are not automatically recalculated.
  • - + Visible row values are not updated; sorting, grouping, filtering and data summaries are automatically recalculated.
  • + - Visible row values are updated; sorting, grouping, filtering and data summaries are not automatically recalculated.
  • + + Visible row values are updated; sorting, grouping, filtering and data summaries are automatically recalculated.
NOTE

Changes in attached properties are not taken into consideration.

To learn more on how the grid's performance can be improved, see Performance Improvement.

See Also