SchedulerControl.AppointmentsDrag Event
The resulting event that fires after the last AppointmentDrag event. Allows you to schedule appointments added to the AdditionalAppointments
collection, and perform other actions.
Namespace: DevExpress.XtraScheduler
Assembly: DevExpress.XtraScheduler.v24.2.dll
Declaration
Event Data
The AppointmentsDrag event's data class is DevExpress.XtraScheduler.AppointmentsDragEventArgs.
Remarks
In the sample below, if a user is about to schedule the “Start” appointment so that it finishes later in time than the related “Finish” appointment starts, the latter appointment is added to the AdditionalAppointments
collection of the AppointmentDrag event.
void SchedulerControl1_AppointmentDrag(object sender, AppointmentDragEventArgs e) {
if (e.SourceAppointment.Subject == "Start") {
AppointmentBaseCollection visbileApts = schedulerControl1.ActiveView.GetAppointments();
Appointment apt = visbileApts.Find(item => item.Subject == "Finish");
if (apt == null)
e.AdditionalAppointments.Clear();
else {
if (e.SourceAppointment != apt) {
if (e.EditedAppointment.End > apt.Start)
e.AdditionalAppointments.Add(apt);
else e.AdditionalAppointments.Clear();
}
}
}
}
New positions for AdditionalAppointments
are set in the AppointmentsDrag
event handler.
private void SchedulerControl1_AppointmentsDrag(object sender, DevExpress.XtraScheduler.AppointmentsDragEventArgs e) {
if (e.AdditionalAppointmentInfos.Count <= 0)
return;
AppointmentDragInfo aptInfo = e.AdditionalAppointmentInfos[0];
if (e.PrimaryAppointmentInfos[0].EditedAppointment.End > aptInfo.SourceAppointment.Start)
aptInfo.EditedAppointment.Start = e.PrimaryAppointmentInfos[0].EditedAppointment.End;
}