Skip to main content

SchedulerControl.CommitAppointmentResize Event

Occurs when the user completes resizing an appointment.

Namespace: DevExpress.Xpf.Scheduling

Assembly: DevExpress.Xpf.Scheduling.v24.1.dll

NuGet Package: DevExpress.Wpf.Scheduling

Declaration

public event CommitAppointmentResizeEventHandler CommitAppointmentResize

Event Data

The CommitAppointmentResize event's data class is CommitAppointmentResizeEventArgs. The following properties provide information specific to this event:

Property Description
Cancel Gets or sets whether the event should be canceled. Inherited from CancelRoutedEventArgs.
ConflictedAppointments Returns the list of appointments that conflict with the resized appointment.
Handled Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route. Inherited from RoutedEventArgs.
OriginalSource Gets the original reporting source as determined by pure hit testing, before any possible Source adjustment by a parent class. Inherited from RoutedEventArgs.
ResizeAppointment Returns the current state of the appointment the user is resizing.
ResizeHandle Indicates whether the user drags the start or end of the appointment.
RoutedEvent Gets or sets the RoutedEvent associated with this RoutedEventArgs instance. Inherited from RoutedEventArgs.
Source Gets or sets a reference to the object that raised the event. Inherited from RoutedEventArgs.
SourceAppointment Returns the resized appointment which is to be committed to the scheduler.

The event data class exposes the following methods:

Method Description
InvokeEventHandler(Delegate, Object) When overridden in a derived class, provides a way to invoke event handlers in a type-specific way, which can increase efficiency over the base implementation. Inherited from RoutedEventArgs.
OnSetSource(Object) When overridden in a derived class, provides a notification callback entry point whenever the value of the Source property of an instance changes. Inherited from RoutedEventArgs.

Remarks

The CommitAppointmentResize event does not fire if the resize operation has been canceled.

Data properties of the event’s ResizeAppointment propery are copied to the event’s SourceAppointment property. Set the event’s Cancel property to true to disable this behavior and manually apply the desired changes to the SourceAppointment.

The example below shows how to implement custom handling of conflicts.

private void Scheduler_CommitAppointmentResize(object sender, DevExpress.Xpf.Scheduling.CommitAppointmentResizeEventArgs e) {
  //if the resized appointment intersects other appointments
  if (e.ConflictedAppointments.Count > 0) {
      //if the user is changing the start time
      if (e.ResizeHandle == DevExpress.Xpf.Scheduling.ResizeHandle.Start) {
          //change the appointment so that it starts right after the last conflict's end
          e.SourceAppointment.Start = e.ConflictedAppointments.MaxBy(x => x.End).End;
          e.SourceAppointment.End = e.ResizeAppointment.End;
      }
      //if the user is changing the end time
      else {
          //change the appointment so that it ends right before the first conflict's start
          e.SourceAppointment.End = e.ConflictedAppointments.MinBy(x => x.Start).Start;
          e.SourceAppointment.Start = e.ResizeAppointment.Start;
      }
  }
}
See Also