Master-Detail Data Representation

  • 3 minutes to read

The GridControl supports master-detail data presentation. In master-detail representation, the GridControl displays a set of detail (child) records for each master (parent) row.

You can display detail data in any visual form:

  • table - detail data are displayed within a nested grid;
  • custom - detail data are displayed within a custom data template;
  • tabbed - detail data are organized in tabbed layout, each tab can display a nested grid or custom content.

DataControlDetailDescriptor

Detail Rendering Specifics

The detail descriptor content is used as a factory to create details. This means the standard layout customization properties do not work for details.

TIP

You can use the master view's DataViewBase.FocusedView property to get the focused detail view. This property returns the master view if it is focused.

Use the focused detail view's DataViewBase.DataControl property to get a focused detail GridControl instance.

Changing the column order and size in any detail grid affects all the detail grids simultaneously.

Note that detail grids are integrated into the master grid's Group Panel, Filter Panel, and other UI Elements. You can identify details in those elements by their captions (DataViewBase.DetailHeaderContent property values converted to strings).

Scrolling

Detail grids are built in the master grid visual tree. This means the master and detail grids share vertical and horizontal scrollbars.

Limitations

Refer to the Master-Detail Mode Limitations topic to learn about the master-detail mode's architectural limitations.

Expanding and Collapsing Master Rows

Use the GridControl.ExpandMasterRow and GridControl.CollapseMasterRow methods to expand and collapse master rows. You can collapse and expand master rows using a single GridControl.SetMasterRowExpanded method.

To get a specific row's state, use the GridControl.IsMasterRowExpanded.

Use the GridControl.MasterRowCollapsing and GridControl.MasterRowExpanding events to prevent master rows from collapsing or expanding.

The GridControl.MasterRowExpanded and GridControl.MasterRowCollapsed events allow you to perform additional processing after a master row was expanded or collapsed.

Obtaining Details

Use the GridControl.GetDetail to obtain a detail data control identified by the master row and its Detail Descriptor. This method returns null, if no DataControlDetailDescriptor objects are used as details on this level or if corresponding details are collapsed.

You can obtain detail controls and descriptors using the following methods:

Appearance Customization

Margins

The GridControl supports custom margins for the details. You can define detail margins using the DetailDescriptorBase.Margin property.

Expand Button Visibility

Use the TableView.IsDetailButtonVisibleBinding property to selectively display or hide detail expand buttons.

Examples

 

See Also