Skip to main content

EditorContainer.ExternalRepository Property

Gets or sets the external repository of in-place editors.

Namespace: DevExpress.XtraEditors.Container

Assembly: DevExpress.XtraEditors.v25.1.dll

NuGet Package: DevExpress.Win.Navigation

Declaration

[DefaultValue(null)]
[DXCategory("Data")]
public PersistentRepository ExternalRepository { get; set; }

Property Value

Type Default Description
PersistentRepository null

A PersistentRepository component holding a collection of in-place editors (repository items).

Remarks

Repository items are used to create in-place editors within container controls (GridControl, TreeList, etc.). To use a specific repository item within a container control, the item must be added to the control’s internal repository (see EditorContainer.RepositoryItems) or external repository. Repository items added to a control’s internal repository cannot be used in other controls. To share the same repository item between multiple controls residing on a single form, use an external repository encapsulated by the PersistentRepository component.

You can work with an external repository as follows:

  • Place a PersistentRepository component onto the form;
  • Add repository items to the created repository and customize their settings as required;
  • Assign the repository to the ExternalRepository property of target container controls/components.
  • Associate the control’s elements (columns, cells, etc) to the repository items stored within the specified external repository.

    For instance, use the GridColumn.ColumnEdit property to assign an in-place editor to a grid column. While handling the GridView.CustomRowCellEdit event, use the e.RepositoryItem parameter to dynamically assign an in-place editor to a grid cell.

Example

The following example uses a PersistentRepository to reuse a single repository item in a Data Grid and a Tree List.

using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Repository;

public partial class Form1 : XtraForm {
    public Form1() {
        InitializeComponent();
        // Create a persistent repository
        PersistentRepository rep = new PersistentRepository();

        //Add a repository item to the persistent repository
        RepositoryItemSpinEdit spin = new RepositoryItemSpinEdit();
        rep.Items.Add(spin);

        //Link the persistent repository to controls
        gridControl1.ExternalRepository = rep;
        treeList1.ExternalRepository = rep;

        // Assign the repository item to columns
        gridView1.Columns["Id"].ColumnEdit = spin;
        treeList1.Columns["Id"].ColumnEdit = spin;
    }
}
See Also