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;
}
}