A newer version of this page is available. Switch to the current version.

MVCxFormLayoutItemCollection.Add(Action<MVCxFormLayoutItem>) Method

Adds a new layout item to the collection and allows you to customize this layout item in a delegate method implementation.

Namespace: DevExpress.Web.Mvc

Assembly: DevExpress.Web.Mvc5.v18.2.dll


public MVCxFormLayoutItem Add(
    Action<MVCxFormLayoutItem> method
Public Function Add(
    method As Action(Of MVCxFormLayoutItem)
) As MVCxFormLayoutItem


Name Type Description
method Action<MVCxFormLayoutItem>

A delegate method that accepts the created MVCxFormLayoutItem as a parameter.


Type Description

A MVCxFormLayoutItem object that is the newly added layout item.


If an item type (specified using the MVCxFormLayoutItem.NestedExtensionType property) is not set explicitly, the FormLayout creates a default item, applies your settings to it and uses a corresponding model property to determine a required type. Once the type is determined, the default Layout item is removed, and another item or a required type is created. Note that in this scenario, the FormaLayout gets access to the Model only during data binding, at which time your settings have been already applied to the default item. So, they do not apply to the new item again.

To solve this issue, you can do the following.

  1. Declare item type in item settings explicitly:

    groupSettings.Items.Add(itemSettings => {
        itemSettings.FieldName = "Description";
         itemSettings.NestedExtensionType = FormLayoutNestedExtensionItemType.TextBox; //required type here
        itemSettings.NestedExtensionSettings.Width = Unit.Percentage(100);
  2. Alternatively, use the overloaded Add method that directly accepts a Model property:

    groupSettings.Items.Add(m => m.Description, itemSettings =>
        itemSettings.FieldName = "Description";
        itemSettings.NestedExtensionSettings.Width = Unit.Percentage(100);
See Also