我有一个带有列表框的控件,其中包含一些可以通过RadScheduleView拖放的约会。这工作正常,但我想复制(不移动)约会。如果有可能我想处理新约会的创建,因为我从Appointment继承并向该类添加了一个新属性。
我知道拖动副本可以在拖动时使用Ctrl键完成,但我想让复制成为默认行为。
当用户点击列表框项时,可能会强制按下Ctrl键。我不知道如何做到最后,但无论如何似乎不是最好的方法。
这是控件的草图。从列表框拖放到计划视图应该复制。计划视图之间的拖放应该移动。
如果有人需要更多详情,请发表评论并进行编辑。感谢。
答案 0 :(得分:2)
经过大量研究后,我发现默认情况下如何制作副本。我正在回答我自己的问题,所以人们可以使用它。
负责DragDrop源(ListBox)的类是Telerik.Windows.DragDrop.Behaviors.ListBoxDragDropBehavior。我们只需要实现我们自己的继承自Telerik.Windows.DragDrop.Behaviors.ListBoxDragDropBehavior的类,并在创建ListBox时在xaml中使用它,如下所示:
<ListBox>
<drag:ListBoxDragDrop.Behavior>
<loc:ListBoxDragDropBehavior/>
</drag:ListBoxDragDrop.Behavior>
</ListBox>
我们只需更改IsMovingItems即可获得默认的复制行为。
class ListBoxDragDropBehavior : Telerik.Windows.DragDrop.Behaviors.ListBoxDragDropBehavior
{
protected override bool IsMovingItems(DragDropState state)
{
return false;
}
}
这就是全部。希望它有所帮助。