Silverlight ListBox拖放

时间:2012-07-30 09:38:05

标签: silverlight drag-and-drop telerik

我正在尝试在两个telerik列表框之间实现拖放功能。我已经使用以下代码完成了它

列表框1:

<telerik:RadListBox x:Name="name1" SelectionMode="Multiple" >
    <telerik:RadListBox.DragVisualProvider> 
        <telerik:ScreenshotDragVisualProvider />
    </telerik:RadListBox.DragVisualProvider>
    <telerik:RadListBox.DragDropBehavior>
        <telerik:ListBoxDragDropBehavior />
    </telerik:RadListBox.DragDropBehavior>
</telerik:RadListBox>

列表框2:

<telerik:RadListBox x:Name="name2" AllowDrop="True">
   <telerik:RadListBox.DragDropBehavior>
       <telerik:ListBoxDragDropBehavior />
   </telerik:RadListBox.DragDropBehavior>
</telerik:RadListBox>

添加了此样式:

<Style TargetType="telerik:RadListBoxItem" >
    <Setter Property="telerik:DragDropManager.AllowCapturedDrag" Value="True" />
</Style>

它完美无缺,但我不希望在将元素拖动到其他列表框时从源列表框中删除该元素

1 个答案:

答案 0 :(得分:0)

来自telerik关于树视图的帮助(对其他人来说也一样):

  

如果要在完成拖放操作后删除   树视图中的项目然后不处理PreviewDragEnded   对于树视图。

所以,你需要的只是:

<telerik:RadTreeView x:Name="radTreeView" Margin="8,8,20,8"
    PreviewDragEnded="radTreeView_PreviewDragEnded"
    ItemsSource="{Binding Source={StaticResource DataSource}, Path=LeaguesDataSource}"
    ItemTemplate="{StaticResource League}"
    IsDragDropEnabled="True"
    IsDragTooltipEnabled="False"/>

代码隐藏:

private void radTreeView_PreviewDragEnded( object sender, RadTreeViewDragEndedEventArgs e )
{
   e.Handled = true;
}