Appointment drag and drop in WPF Scheduler (SfScheduler)
22 Jul 20213 minutes to read
The WPF Scheduler supports to reschedule the appointment by performing the drag and drop operation.
Disable drag and drop
The Scheduler supports to disable the appointment drag and drop by setting AppointmentEditFlag property except DragDrop
. In this case, appointment drag & drop will not be able to perform.
<syncfusion:SfScheduler x:Name="Schedule"
AppointmentEditFlag="Add,Edit,Resize">
</syncfusion:SfScheduler>
this.Schedule.AppointmentEditFlag = AppointmentEditFlag.Add | AppointmentEditFlag.Edit | AppointmentEditFlag.Resize;
Show/Hide the time indicator on appointment dragging
Show or hide the time indicator at a specific time when to drag the appointment by using the ShowTimeIndicator property of DragDropSettings is set to true.
Schedule.ViewType = SchedulerViewType.Week;
Schedule.DragDropSettings.ShowTimeIndicator = true;
NOTE
- Not applicable for Month and Timeline Month views.
- If the TimeRulerSize property value is zero to collapse the time ruler labels, then drag time indicator will not be shown.
Appointment dragging time indicator text formatting
Customize the format for the appointment dragging time indicator format by setting the TimeIndicatorFormat property of DragDropSettings in Scheduler.
Schedule.ViewType = SchedulerViewType.Week;
Schedule.DragDropSettings.TimeIndicatorFormat = "HH mm tt";
NOTE
- When dragging the appointment, the time indicator overlaps with the time ruler label position in the day, week and workweek views.
AppointmentDragOver event
Scheduler notifies by AppointmentDragOver while dragging the appointment. AppointmentDragOverEventArgs has following members which provides information for AppointmentDragOver
event.
Appointment - Gets the Appointment that is dragging.
DraggingPoint - Gets the dragging point of schedule appointment UI.
DraggingTime - Gets the dragging time of the dragging appointment object.
SourceResource - Gets the SchedulerResource where the appointment was located before starting the dragging.
TargetResource - Gets the SchedulerResource
where the appointment is currently being dragged over.
this.Schedule.AppointmentDragOver += Schedule_AppointmentDragOver;
private void Schedule_AppointmentDragOver(object sender, AppointmentDragEventArgs e)
{
//To notify when dragging the appointment.
}
AppointmentDragStarting event
Scheduler notifies by AppointmentDragStarting when start to drag the appointment.
AppointmentDragStartingEventArgs has following members which provides information for AppointmentDragStarting
event.
Appointment - Get the selected appointment.
Cancel - To avoid appointment dragging by enabling this property.
Resource - Gets the resource of an appointment under which the appointment is located.
this.Schedule.AppointmentDragStarting += Schedule_AppointmentDragStarting;
private void Schedule_AppointmentDragStarting(object sender, AppointmentDragStartingEventArgs e)
{
//To notify when start to drag the appointment.
}
AppointmentDropping event
Scheduler is notified by AppointmentDropping when the appointment is dropped.
AppointmentDroppingEventArgs has following members which provides information for AppointmentDropping
event.
Appointment - Gets the selected appointment that is dragged and dropped.
DropTime - Gets the dropped time of the dragged appointment.
Cancel - To avoid appointment dropping by enabling this property.
SourceResource - Gets the SchedulerResource
where the appointment was located before starting the dragging.
TargetResource - Gets the SchedulerResource
where the appointment is currently being dragged over.
this.Schedule.AppointmentDropping += Schedule_AppointmentDropping;
private void Schedule_AppointmentDropping(object sender, AppointmentDroppingEventArgs e)
{
//To notify when the appointment is dropping.
}
NOTE
You can also explore our WPF Scheduler example to knows how to schedule and manage appointments through an intuitive user interface, similar to the Outlook calendar.