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
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;
}
}
}