RepositoryItemLookUpEdit.PopulateColumns() Method
Creates columns for all fields available in the lookup data source (RepositoryItemLookUpEditBase.DataSource).
Namespace: DevExpress.XtraEditors.Repository
Assembly: DevExpress.XtraEditors.v24.1.dll
NuGet Package: DevExpress.Win.Navigation
Declaration
Remarks
If no columns are explicitly created in the RepositoryItemLookUpEdit.Columns collection, the lookup editor automatically calls the PopulateColumns
method to create columns at runtime when the editor’s dropdown is invoked for the first time.
Note
When the form is loading, call the ForceInitialize() method, then call the PopulateColumns
method before you start to create columns or obtain column values.
This example demonstrates how to initialize a LookUpEdit or its repository item during form load.
using DevExpress.XtraEditors.Repository;
private void Form1_Load(object sender, EventArgs e) {
RepositoryItemLookUpEdit repositoryItemLookUpEdit = new RepositoryItemLookUpEdit();
repositoryItemLookUpEdit.DataSource = new List<DataObject> {
new DataObject { ID = 1, Text = "One" },
new DataObject { ID = 2, Text = "Two" },
new DataObject { ID = 3, Text = "Three" }
};
repositoryItemLookUpEdit.ValueMember = nameof(DataObject.ID);
repositoryItemLookUpEdit.DisplayMember = nameof(DataObject.Text);
// Initializes the lookup's data source and internal infrastructure.
repositoryItemLookUpEdit.ForceInitialize();
// Now, you can safely populate lookup columns.
repositoryItemLookUpEdit.PopulateColumns();
// Access columns and obtain column values.
var column = repositoryItemLookUpEdit.Columns[nameof(DataObject.Text)];
string columnValue = repositoryItemLookUpEdit.GetDataSourceValue(column, 1) as string; // columnValue = "Two"
object keyValue = repositoryItemLookUpEdit.GetKeyValueByDisplayValue(column); // keyValue = 2
}
The PopulateColumns
method removes the existing columns from the RepositoryItemLookUpEdit.Columns collection and adds new columns to this collection for all fields in the RepositoryItemLookUpEditBase.DataSource. Use traditional collection methods to add, remove, and access individual lookup columns.
At design time, you can retrieve fields from the bound lookup data source and create corresponding columns via the control’s smart tag (for standalone editors) or by clicking the Populate Columns button in the Column Collection Editor. To activate this editor, click the ellipsis button for the RepositoryItemLookUpEdit.Columns property in the Properties window.
Each column in a lookup editor is an instance of the LookUpColumnInfo class.
The PopulateColumns
method sets the LookUpColumnInfo.FieldName and LookUpColumnInfo.Caption properties to the corresponding field names in the lookup data source.
If a field specifies a date/time value, the corresponding column’s LookUpColumnInfo.FormatType is set to FormatType.DateTime and FormatInfo.FormatString is set to the Short Date Format.
For numeric fields, the column’s LookUpColumnInfo.FormatType is set to FormatType.Numeric and the LookUpColumnInfo.Alignment is set to HorzAlignment.Far. For non-numeric fields, the alignment is set to HorzAlignment.Near.
After all columns have been created, the method calls RepositoryItemLookUpEdit.BestFit in order to calculate column widths according to their contents.
Related GitHub Examples
The following code snippets (auto-collected from DevExpress Examples) contain references to the PopulateColumns() method.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.