All docs
V20.1
20.1
19.2
19.1
The page you are viewing does not exist in version 19.1. This link will take you to the root page.
18.2
The page you are viewing does not exist in version 18.2. This link will take you to the root page.
18.1
The page you are viewing does not exist in version 18.1. This link will take you to the root page.
17.2
The page you are viewing does not exist in version 17.2. This link will take you to the root page.

SchedulerControl.CommitAppointmentResize Event

Occurs when the user completes resizing an appointment.

Namespace: DevExpress.Xpf.Scheduling

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

Declaration

public event CommitAppointmentResizeEventHandler CommitAppointmentResize
Public Event CommitAppointmentResize As CommitAppointmentResizeEventHandler

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.

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