2012-07-30 3 views
1

J'essaie d'implémenter la fonctionnalité glisser-déposer entre deux zones de liste télérig. Je l'ai fait en utilisant le code suivantSilverlight ListBox Glisser-Déposer

Listbox 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> 

Listbox 2:

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

a ajouté Style:

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

Il fonctionne parfaitement mais je ne ne souhaite pas que l'élément soit supprimé de la zone de liste source lorsqu'il est glissé dans l'autre zone de liste

Répondre

0

De telerik aide d'un TreeView (même pour les autres):

Si vous voulez après la glisser-déposer est terminée pour enlever l'élément de l'arborescence, puis ne pas manipuler la PreviewDragEnded pour la vue de l'arbre.

donc, tout u besoin est:

<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"/> 

code-behind:

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