Row Class Structure
- 2 minutes to read
One of the responsibilities of the ExpressVerticalGrid control is to provide a view of the underlying data to the user, structurally it arranges data into rows. The vertical grid is made up of any number of rows depending on how you design it. Each row in turn is formed by one or more cells that are differentiated into header and data cells. The header cell contains descriptive information about the row, the data cell acts as a container for a data item.
Depending upon how the data is arranged in rows and how the vertical grid interacts with them different types of rows are defined.
From the conceptual perspective there is one Row super type and three subtypes for the Row super type:
Row – this is a super type. Represents the base interface.
Category Row – this is a subtype of the Row. Comprised of one header cell, contains no data and serves to organize logically related rows into groups;
Editor Row – this is a subtype of the Row. Comprised of one header cell in a header column and a set of data cells with one per data column;
Multi Editor Row – this is a subtype of the Row. Comprised of a set of header cells in a header column and a set of data cells in a data column. This type is used to group logically related data items.
From the specification perspective every type of row is represented by the appropriate class:
TcxCustomRow – is an abstract class which represents the Row supertype and introduces the base interface and common behavior for the row family;
TcxCategoryRow represents the Category Row subtype;
TcxCustomEditorRow represents the Editor Row subtype;
TcxCustomMultiEditorRow represents the Multi Editor Row subtype.
The row’s hierarchy structure is shown in the following Class diagram:
The vertical grid uses the TcxCustomRow type as a common interface to interact with different types of rows. It enhances application robustness as well as easing its maintenance and custom development.
The relationship between the vertical grid and its rows is shown in the following image: