I am trying to implement the drag and drop functionality between the RadScheduleView and listbox. I have followed the samples provided by telerik to implement the task. I have a converter named "ScheduleViewToAppointmentConverter" and also ScheduleVIewDragDropBehaviour class to implement the custom drag drop behaviour. In the Beaviour class i have override the Drop method and there i got my custom appointment Deal though State. And i can add it to the destination source and the new dragged item will be displayed in my schedule view. The code snippet for the behaviour class is as follow . Here eventhogh i get the dragged data in the drop menthod i coudnt communicate with the view model.
public class ScheduleViewDragDropBehavior : Telerik.Windows.Controls.ScheduleViewDragDropBehavior
public override IEnumerable<
> ConvertDraggedData(object data)
if (DataObjectHelper.GetDataPresent(data, typeof(Deal), false))
return ((IEnumerable)DataObjectHelper.GetData(data, typeof(Deal), false)).OfType<
public override void Drop(Telerik.Windows.Controls.DragDropState state)
if (state.SourceAppointmentsSource == state.DestinationAppointmentsSource)
var appointmentToAdd = state.Appointment as Deal;
appointmentToAdd.Subject = "Boney";
appointmentToAdd.Start = state.DestinationSlots.First().Start;
appointmentToAdd.End = state.DestinationSlots.First().End;
(state.DestinationAppointmentsSource as ObservableCollection<
Here Deal is my custom appointment class.
Now i want to implement the drag and drop through commands, so that i can get the dragged data in the view model and from there I can assign it to the appointment collection for binding to schedule view after checking some validations. How can i implement the drag and drop though commands.?
Also i have 2 resource named "Main" and "Side" in the schedule view. If i am dragging it main , I have check whether the any appointment already exists there , if so drop cannot happen So which is the best place to implement these kind of validations .