Back to Devexpress

IContextMenuItemCollection.Flatten() Method

blazor-devexpress-dot-blazor-dot-icontextmenuitemcollection-8a1778ee.md

latest3.0 KB
Original Source

IContextMenuItemCollection.Flatten() Method

Converts the item collection into a flattened collection that contains all root-level and nested items of the context menu.

Namespace : DevExpress.Blazor

Assembly : DevExpress.Blazor.v25.2.dll

NuGet Package : DevExpress.Blazor

Declaration

csharp
IEnumerable<IContextMenuItem> Flatten()

Returns

TypeDescription
IEnumerable<IContextMenuItem>

The flattened collection of all menu items.

|

Remarks

Handle the CustomizeContextMenu event to modify context commands available in the Grid, Rich Text Editor, or TreeList component. In the event handler, call the Flatten method to recursively iterate through the item collection and obtain both root-level and nested items.

Note

Built-in Grid and TreeList context menu commands do not contain nested items. You can add them using Add or AddCustomItem methods.

The following code snippet removes icons for all items in the context menu (including sub-menus):

razor
<DxRichEdit CustomizeContextMenu=OnCustomizeContextMenu/>

@code {
    void OnCustomizeContextMenu(IContextMenuItemCollection items) {
        foreach (var item in items.Flatten()) {
            item.IconUrl = string.Empty;
        }
    }
}
razor
<DxGrid ContextMenus="GridContextMenus.All" CustomizeContextMenu="CustomizeContextMenu">
    @* ... *@
</DxGrid>

@code {
    void CustomizeContextMenu(GridCustomizeContextMenuEventArgs args) {
        foreach (var item in args.Items.Flatten()) {
            item.IconUrl = string.Empty;
        }
    }
}
razor
<DxTreeList ContextMenus="TreeListContextMenus.All" CustomizeContextMenu="CustomizeContextMenu">
    @* ... *@
</DxTreeList>

@code {
    void CustomizeContextMenu(TreeListCustomizeContextMenuEventArgs args) {
        foreach (var item in args.Items.Flatten()) {
            item.IconUrl = string.Empty;
        }
    }
}

Refer to CustomizeContextMenu event descriptions for additional information and examples:

See Also

IContextMenuItemCollection Interface

IContextMenuItemCollection Members

DevExpress.Blazor Namespace