SchedulerStorageBase.AppointmentChanging Event
Fires when an appointment’s property is about to change.
Namespace: DevExpress.XtraScheduler
Assembly: DevExpress.XtraScheduler.v24.1.Core.Desktop.dll
NuGet Package: DevExpress.Scheduler.CoreDesktop
Declaration
Event Data
The AppointmentChanging event's data class is PersistentObjectCancelEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
Cancel | Gets or sets whether to cancel the operation. |
Object | Gets the persistent object (appointment, resource or appointment dependency) for which the event occurs. Inherited from PersistentObjectEventArgs. |
Remarks
The AppointmentChanging event is raised when changing an appointment’s property. The appointment whose property is changed is identified by the event parameter’s PersistentObjectEventArgs.Object property. Set the PersistentObjectCancelEventArgs.Cancel to true to roll back changes and cancel the operation.
When an appointment in a series of recurring appointments changes, the AppointmentChanging event fires twice. The first time it is raised for the appointment occurrence. Do not change custom fields when the event is raised for the first time. The next time the event is raised for the changed occurrence and you can modify custom fields if required.
Important
Do not modify the appointment’s data source or data binding within this event handler. It results in the current appointment being disposed of, and consequently, an unhandled exception occurs.
Example
This event handler restricts the end-user from modifying appointments with busy status.
Note
A complete sample project is available at https://github.com/DevExpress-Examples/winforms-scheduler-create-appointment-edit-form-with-custom-fields
private void SchedulerStorage1_AppointmentChanging(object sender, PersistentObjectCancelEventArgs e) {
object busyKey = schedulerStorage1.Appointments.Statuses.GetByType(AppointmentStatusType.Busy).Id;
if (((Appointment)e.Object).StatusKey == busyKey) e.Cancel = true;
}