FieldLayouts Property

Returns the collection of FieldLayout objects (read-only)
Public ReadOnly Property FieldLayouts As FieldLayoutCollection
public FieldLayoutCollection FieldLayouts {get;}

DataRecords are created lazily as each item in the DataSource is requested. When a DataRecord is created DataPresenterBase's FieldLayouts collection is searched for an existing FieldLayout whose FieldLayout.Fields match the DataRecord.DataItem's properties. If one is not found then a new FieldLayout is created, in which case the FieldLayoutInitializing and FieldLayoutInitialized events will be raised.

Note: If the new FieldLayout's FieldLayout.AutoGenerateFieldsResolved property returns true then the FieldLayout.Fields collection is automatically populated with a Field for every public property on the data item. This is done between the FieldLayoutInitializing and FieldLayoutInitialized events.

In any case the AssigningFieldLayoutToItem event is raised to allow a different FieldLayout to be assigned to the DataRecord. Finally the InitializeRecord event is raised.

Refer to the Fields topic in the Developer's Guide for an explanation of fields.

Refer to the Field Layout topic in the Developer's Guide for an explanation of the FieldLayout object.

Refer to the Theory of Operation topic in the Developer's Guide for an explanation of how everything works together.

The following example demonstrates how to create a FieldLayout and add it to the FieldLayouts property of a DataPresenterBase derived control. It also demonstrates how to create and initialize the FieldSettings of a FieldLayout and create the Fields that will make up that FieldLayout including the use of UnboundField instances.
<igDP:XamDataGrid x:Name="XamDataGrid12" BindToSampleData="true">
<!-- define a field layout that will match the data -->

<!-- initialize settings for the fields in this specific field layout -->
<igDP:FieldSettings CellClickAction="SelectRecord"/>

<!-- define the fields for the field layout -->
<igDP:Field Name="name" Label="Name"/>
<igDP:Field Name="department" Label="Dept." />
<igDP:Field Name="salary" Label="Salary"/>
<igDP:Field Name="email" Label="Email"/>
                    The XamDataGrid allows you to include Unbound Fields in a
                    FieldLayout. This sample shows how you can use
                    Unbound Fields to include calculated values. 
<igDP:UnboundField Name="SubTotal" Label="Sub-total"></igDP:UnboundField>
<igDP:UnboundField Name="SalesTax" Label="Sales Tax (7%)" />
<igDP:UnboundField Name="Total" Label="Total" DataType="{x:Type sys:Decimal}"></igDP:UnboundField>


Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also