Skip to main content
A newer version of this page is available. .

SchedulerMenuEventArgs.Customizations Property

Provides access to a collection of customizations of the popup menu, customized via the SchedulerControl.PopupMenuShowing event handler.

Namespace: DevExpress.Xpf.Scheduler

Assembly: DevExpress.Xpf.Scheduler.v19.2.dll

Declaration

public BarManagerActionCollection Customizations { get; }

Property Value

Type Description
BarManagerActionCollection

A BarManagerActionCollection object.

Remarks

Important

You are viewing documentation for the legacy WPF Scheduler control. If you’re starting a new project, we strongly recommend that you use a new control declared in the DevExpress.Xpf.Scheduling namespace. If you decide to upgrade an existing project in order to switch to the updated scheduler control, see the Migration Guidelines document.

Use the Customizations property to manage popup menu items (for example, remove existing menu items or/and add new items). SchedulerControl also provides the SchedulerControl.DefaultMenuCustomizations and SchedulerControl.AppointmentMenuCustomizations properties, allowing you to customize default and appointment popup menus.

Example

This example demonstrates how to customize the SchedulerControl’s context menu at runtime by removing the New Recurring Appointment menu item from the Default Popup Menu, and adding a custom item instead.

Handle the SchedulerControl.PopupMenuShowing event. In the event handler, use the SchedulerMenuEventArgs.Menu property to determine whether the default popup menu raised an event, and modify the SchedulerMenuEventArgs.Customizations collection to add or remove popup menu items.

Private Sub schedulerControl1_PopupMenuShowing(ByVal sender As Object, ByVal e As SchedulerMenuEventArgs)
    ' Check whether this event was raised for a default popup menu of the Scheduler control.
    If e.Menu.Name = SchedulerMenuItemName.DefaultMenu Then
        For i As Integer = 0 To e.Menu.Items.Count - 1
            Dim menuItem As SchedulerBarItem = TryCast(e.Menu.Items(i), SchedulerBarItem)
            If menuItem IsNot Nothing Then
                If menuItem IsNot Nothing AndAlso menuItem.Name = SchedulerMenuItemName.NewAllDayEvent Then
                    menuItem.Content = "Create All-Day Appointment"
                    Exit For
                End If
            End If
        Next i

        ' Remove the New Recurring Event menu item using the Action approach.
        e.Customizations.Add(New RemoveBarItemAndLinkAction() With {.ItemName = SchedulerMenuItemName.NewRecurringEvent})

        ' Create a custom menu item.
        Dim myMenuItem As New BarButtonItem()
        myMenuItem.Name = "customItem"
        myMenuItem.Content = "Item Added at Runtime"
        AddHandler myMenuItem.ItemClick, AddressOf customItem_ItemClick

        ' Insert a menu separator.
        e.Customizations.Add(New BarItemLinkSeparator())
        ' Insert a new item into the Scheduler popup menu.
        e.Customizations.Add(myMenuItem)
    End If
End Sub

Private Sub customItem_ItemClick(ByVal sender As Object, ByVal e As ItemClickEventArgs)
    ' Implement a custom action.
    MessageBox.Show(String.Format("{0} is clicked", e.Item.Name))
End Sub
See Also