DragDropTarget中的ItemDroppedOnTarget应该有目标元素

时间:2012-11-10 16:01:30

标签: c# silverlight drag-and-drop silverlight-5.0 silverlight-toolkit

我正在使用DragDropListBoxTarget中的Silverlight Toolkit控件来支持拖放行为。但我面临着这种控制的问题。

很难掌握掉掉项目的目标元素。在ItemDroppedOnTarget事件参数中必须有东西。

当我拖动项目时,我需要在用户删除它时,中间事件应该修改目标项目。但我找不到实施它的方法。

我使用的是正确的控件,还是我还有其他选择?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我最终使用了this drag-drop tool。我重新编译了Silverlight 5的源代码。它让我知道了目标。当我使用工具包DragDropTarget控件时,我也很懒,仍然想要你所拖动的任何幽灵拖动图片,所以我保留了我的源代码,并且还包含在新的拖放工具中。

我定义拖动的方式:

<toolkit:ListBoxDragDropTarget AllowedSourceEffects="Copy">
    <ListBox ItemsSource="{Binding Path=UnitOfWork.Templates}" Width="130" Height="360" BorderThickness="0">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <dd:DragSource>
                        <TextBlock Text="{Binding Path=Name}" Width="120"/>
                    </dd:DragSource>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</toolkit:ListBoxDragDropTarget>

<dd:DropTarget Grid.Row="2" AllowDrop="True" OnDropped="Target_OnDropped">
    <Border BorderBrush="Black" BorderThickness="1" Width="98" Height="30">                
        <TextBlock Text="Drop Here" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Border>
</dd:DropTarget>

这样可以保持 ListBoxDragDropTarget 创建的拖动重影,同时允许我使用 dd:DragSource dd:DropTarget 控件允许更细粒度的拖拽。