0

我有一个带有列表框的控件,其中包含一些可以拖放到 RadScheduleView 上的约会。这工作正常,但我想复制(而不是移动)约会。如果可能的话,我想处理新约会的创建,因为我从 Appointment 继承并向类添加了一个新属性。

我知道可以在拖动时使用 Ctrl 键来完成拖动复制,但我想让复制成为默认行为。

也许在用户单击列表框项时强制按下 Ctrl 键可能会起作用。我不知道如何做最后但无论如何似乎不是最好的方法。

这是控件的草图。从列表框拖放到计划视图应该复制。计划视图之间的拖放应该移动。 使用列表框和计划视图进行控制

如果有人需要更多详细信息,请发表评论,我会编辑。谢谢。

4

1 回答 1

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

就这样。希望能帮助到你。

于 2014-02-03T18:01:30.970 回答