wpf-devexpress-dot-xpf-dot-scheduling-dot-schedulercontrol-364ecda9.md
Occurs when an end-user tries to create a new appointment.
Namespace : DevExpress.Xpf.Scheduling
Assembly : DevExpress.Xpf.Scheduling.v25.2.dll
NuGet Package : DevExpress.Wpf.Scheduling
public event AppointmentItemOperationEventHandler CustomAllowAppointmentCreate
Public Event CustomAllowAppointmentCreate As AppointmentItemOperationEventHandler
The CustomAllowAppointmentCreate event's data class is AppointmentItemOperationEventArgs. The following properties provide information specific to this event:
| Property | Description |
|---|---|
| Allow | Gets or sets whether performing a particular action is allowed. |
| Appointment | Gets the appointment for which the element is raised. Inherited from AppointmentItemEventArgs. |
| Recurring | Gets whether the target appointment is recurring. |
Handle the CustomAllowAppointmentCreate event and sets its AppointmentItemOperationEventArgs.Allow property to manage a particular case and specify whether to allow an end-user to create a new appointment. If you do not specify the required behavior manually, the SchedulerControl.AllowAppointmentCreate manages whether creating new appointments is allowed.
The appointment to be created can be accessed using the AppointmentItemEventArgs.Appointment property.
Set the AppointmentItemOperationEventArgs.Allow property to false to prevent an appointment from being created.
Note
The SchedulerControl uses the CommandManager class to manage commands executed by the ribbon or context menu items. The RequerySuggested event is fired when any changes that can affect the command’s ability to execute (e.g., change of focus) have been made. It notifies the command that is should raise the CanExecuteChanged event, which makes the CustomAllowAppointmentCreate event to fire as well. This chain of events can occur involuntarily, so make sure that the event handler does not contain any code that may slow the application performance.
private void schedulerControl1_CustomAllowAppointmentCreate(object sender, AppointmentItemOperationEventArgs e)
{
//Retrieve the selected interval:
DateTimeRange selectedIntervalRange = schedulerControl1.SelectedInterval;
TimeInterval selectedInterval = new TimeInterval(selectedIntervalRange.Start, selectedIntervalRange.End);
//Check whether the selected interval intersects with the resticted interval:
//If true, restrict appointment creation
e.Allow = IsIntervalAllowed(selectedInterval);
}
Private Sub schedulerControl1_CustomAllowAppointmentCreate(ByVal sender As Object, ByVal e As AppointmentItemOperationEventArgs)
'Retrieve the selected interval:
Dim selectedIntervalRange As DateTimeRange = schedulerControl1.SelectedInterval
Dim selectedInterval As New TimeInterval(selectedIntervalRange.Start, selectedIntervalRange.End)
'Check whether the selected interval intersects with the resticted interval:
'If true, restrict appointment creation
e.Allow = IsIntervalAllowed(selectedInterval)
End Sub
The following code snippet (auto-collected from DevExpress Examples) contains a reference to the CustomAllowAppointmentCreate event.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.
wpf-scheduler-apply-end-user-restrictions/CS/WpfApplication1/MainWindow.xaml#L20
CustomAllowAppointmentConflicts="customAllowAppointmentConflictsHandler"
CustomAllowAppointmentCreate="customAllowAppointmentCreateHandler">
<!--endregion #main-->
#line 20 "..\..\..\MainWindow.xaml"
this.schedulerControl1.CustomAllowAppointmentCreate += new DevExpress.Xpf.Scheduling.AppointmentItemOperationEventHandler(this.customAllowAppointmentCreateHandler);
#ExternalSource("..\..\..\MainWindow.xaml",20)
AddHandler Me.schedulerControl1.CustomAllowAppointmentCreate, New DevExpress.Xpf.Scheduling.AppointmentItemOperationEventHandler(AddressOf Me.customAllowAppointmentCreateHandler)
See Also