Bonjour à tous,
J'essaye de donner à mon utilisateur la possibilité de réordonner des éléments dans une ListBox à l'aide de Drag&Drop.
En fait j'ai une entité MISSION, qui est liée à plusieurs entités ACTIONs. Pour chaque MISSION j'affiche une ListBox d'ACTIONs. Et je voudrais pouvoir réordonner la liste d'ACTIONs de manière à pouvoir faire ce genre de chose :
MISSION 1
- ACTION A
- ACTION B
- ACTION C
En 'draguant' ACTION A tout en bas de la liste
MISSION 1
- ACTION B
- ACTION C
- ACTION A
Voilà mon code :
Avec une ListBox populée avec des données factices pas de problème mais lorsque j’alimente ma ListBox avec RIA ça coince car du coup le ItemsSource de ma ListBox est en lecture seul. Du coup impossible de modifier directement via Drag&Drop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <Page.Resources> <StyleTargetType="telerik:RadListBoxItem"x:Key="DraggableListBoxItem"> <SetterProperty="telerik:DragDropManager.AllowCapturedDrag"Value="True"/> </Style> </Page.Resources> <telerik:RadListBoxItemContainerStyle="{StaticResource DraggableListBoxItem}"x:Name="Lb_Actions"ItemsSource="{Binding Path=SelectedMission.ACTIONs,Mode=TwoWay}"SelectedItem="{Binding Path=SelectedAction,Mode=TwoWay}"> <telerik:RadListBox.ItemTemplate> <DataTemplate> <missionControl:ActionsControl></missionControl:ActionsControl> </DataTemplate> </telerik:RadListBox.ItemTemplate> <telerik:RadListBox.DragVisualProvider> <telerik:ScreenshotDragVisualProvider/> </telerik:RadListBox.DragVisualProvider> <telerik:RadListBox.DragDropBehavior> <telerik:ListBoxDragDropBehaviorAllowReorder="True"/> </telerik:RadListBox.DragDropBehavior> </telerik:RadListBox>
Telerik me conseil de créer en parallèle une nouvelle ObservableCollection contenant une copie de ma liste d'action, de jouer avec cette dernière pour le Drag&Drop puis de comparer mes listes pour le submitChanges mais je trouve ça dommage car du coup je perd tout l’intérêt de RIA, ce ne sont plus directement mes 'vrai' données qui sont bindées à mes contrôles... Du coup plus de validation... toussa toussa
Si quelqu'un avait une autre idée d'approche voir un exemple de Drag&Drop RIA je suis preneur !
En vous remerciant !!
Partager