Back to Devexpress

CRXPF0014 - Missing BeginUpdate and EndUpdate calls

coderushforroslyn-404298-static-code-analysis-xaml-analyzers-crxpf-0014-missing-begin-update-and-end-update-calls.md

latest1.2 KB
Original Source

CRXPF0014 - Missing BeginUpdate and EndUpdate calls

  • Feb 14, 2023

Severity: Info

The analyzer detects that you modify the control’s collection multiple times and do not wrap this modification into BeginUpdate and EndUpdate methods. In this case, the control may update its collection slower.

Examples

Invalid Code

csharp
for ... || foreach ... || while ... || any cycle
    _gridControl.Columns.Add(_newColumn);

// OR

_gridControl.Columns.Add(_newColumn1);
_gridControl.Columns.Add(_newColumn2);
_gridControl.Columns.Remove(_someColumn);

Valid Code

csharp
_gridControl.Columns.BeginUpdate();
for ... || foreach ... || while ... || any cycle
    _gridControl.Columns.Add(_newColumn);
_gridControl.Columns.EndUpdate();

// OR

_gridControl.Columns.BeginUpdate();
_gridControl.Columns.Add(_newColumn1);
_gridControl.Columns.Add(_newColumn2);
_gridControl.Columns.Remove(_someColumn);
_gridControl.Columns.EndUpdate();

How to Fix

Call the BeginUpdate and EndUpdate methods before and after collection updates to process these updates in a batch and increase performance.