# ContextMenuService Class

Class ContextMenuService. Contains various methods with options to open and close context menus. Should be added as scoped service in the application services and RadzenContextMenu should be added in application main layout. Implements the IDisposable

Namespace: [Radzen](https://blazor.radzen.com/docs/api/Radzen.md)

Assembly: Radzen.Blazor.dll

## Inheritance

- Object
- ContextMenuService

## Syntax

```csharp
public class ContextMenuService
```

## Examples

```razor
@inject ContextMenuService ContextMenuService
<RadzenButton Text="Show context menu" ContextMenu=@(args => ShowContextMenuWithContent(args)) />
@code {
    void ShowContextMenuWithContent(MouseEventArgs args) => ContextMenuService.Open(args, ds =>
      @<RadzenMenu Click="OnMenuItemClick">
        <RadzenMenuItem Text="Item1" Value="1"></RadzenMenuItem>
        <RadzenMenuItem Text="Item2" Value="2"></RadzenMenuItem>
        <RadzenMenuItem Text="More items" Value="3">
            <RadzenMenuItem Text="More sub items" Value="4">
                <RadzenMenuItem Text="Item1" Value="5"></RadzenMenuItem>
                <RadzenMenuItem Text="Item2" Value="6"></RadzenMenuItem>
            </RadzenMenuItem>
        </RadzenMenuItem>
      </RadzenMenu>);

    void OnMenuItemClick(MenuItemEventArgs args)
    {
      Console.WriteLine($"Menu item with Value={args.Value} clicked");
    }
}
```

## Constructors

| Constructor | Description |
|-------------|-------------|
| `public ContextMenuService(NavigationManager uriHelper)` | Initializes a new instance of the [ContextMenuService](https://blazor.radzen.com/docs/api/Radzen.ContextMenuService.md) class. Parameters: `uriHelper`: The URI helper. |

## Methods

| Method | Returns | Description |
|------|---------|-------------|
| `Close()` | `void` | Closes this instance. |
| `Dispose()` | `void` | Disposes this instance. |
| `Open(MouseEventArgs args, RenderFragment<ContextMenuService> childContent)` | `void` | Opens the specified arguments. Parameters: `args`: The MouseEventArgs instance containing the event data. |
| `Open(MouseEventArgs args, ContextMenuOptions options)` | `void` | Opens the specified arguments. Parameters: `args`: The MouseEventArgs instance containing the event data. |
| `Open(MouseEventArgs args, IEnumerable<ContextMenuItem> items, Action<MenuItemEventArgs> click)` | `void` | Opens the specified arguments. Parameters: `args`: The MouseEventArgs instance containing the event data. `items`: The items. `click`: The click. |

## Events

| Event | Type | Description |
|------|------|-------------|
| OnClose | `Action` | Raises the Close event. |
| OnNavigate | `Action` | Occurs when [on navigate]. |
| OnOpen | `Action<MouseEventArgs, ContextMenuOptions>` | Occurs when [on open]. |

