Skip to main content
All docs
V24.2

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

DXWIN0002: Redundant RepositoryItem Initialization

Severity: Error

Avoid intializing new instances of repository items (RepositoryItem class descendants) inside frequently fired events. In certain cases, the Garbage Collector cannot collect such items.

Instead, use a variable to initialize required repository items outside event handlers.

#Example 1

#Invalid Code

C#
private void GridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e) {
   RepositoryItemTextEdit edit = new RepositoryItemTextEdit(); 
   edit.EditValueChanged += Edit_EditValueChanged; 
   e.RepositoryItem =  edit; 
}

#Valid Code

C#
// Store edit in a variable
RepositoryItemTextEdit edit = new RepositoryItemTextEdit();
edit.EditValueChanged += Edit_EditValueChanged;

private void GridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e) {
    e.RepositoryItem = edit; 
} 

#Example 2

#Invalid Code

C#
private void GridView1_CustomRowCellEditForEditing(object sender, CustomRowCellEditEventArgs e) {
    RepositoryItemTextEdit edit = new RepositoryItemTextEdit(); 
    edit.EditValueChanged += Edit_EditValueChanged; 
    e.RepositoryItem =  edit;
}

#Valid Code

C#
// Store edit in a variable
RepositoryItemTextEdit edit = new RepositoryItemTextEdit();
edit.EditValueChanged += Edit_EditValueChanged;

private void GridView1_CustomRowCellEditForEditing(object sender, CustomRowCellEditEventArgs e) { 
    e.RepositoryItem = edit; 
}