Bonjour,
Bon c'est ma première expérience avec les DragAndDrop. voila ce que j'ai, une datagrid de Person et un canvas. J'ai effectué une petite recherche sur internet et j'ai trouvé le Toolkit de silverlight 4 qui m'offre un toolkitataGridDragDropTarget avec des elements Draggable
voila mon fichier .xaml
Code xaml : 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
20
21
22
23
24
25
26
27
28 <UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class="DragAndDrop.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400" xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit" xmlns:toolKit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Toolkit"> <Grid x:Name="LayoutRoot" Background="White" Loaded="LayoutRoot_Loaded"> <toolkit:DataGridDragDropTarget AllowDrop="True" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"> <sdk:DataGrid x:Name="dataGrid1" IsReadOnly="True" AutoGenerateColumns="False" Height="123" Width="273"> <sdk:DataGrid.Columns> <sdk:DataGridTextColumn Header="Person ID" Binding="{Binding PERSON_ID}"/> <sdk:DataGridTextColumn Header="First Name" Binding="{Binding FIRST_NAME}"/> <sdk:DataGridTextColumn Header="Middle Name" Binding="{Binding MIDDLE_NAME}"/> </sdk:DataGrid.Columns> </sdk:DataGrid> </toolkit:DataGridDragDropTarget> <toolkit:PanelDragDropTarget Height="61" HorizontalAlignment="Left" Margin="111,22,0,0" Name="panelDragDropTarget1" VerticalAlignment="Top" Width="229" Background="Blue"> <toolkit:WrapPanel AllowDrop="True" Drop="WrapPanel_Drop"> <Canvas AllowDrop="True" Background="Aqua" Height="61" Width="141" Drop="Canvas_Drop"/> </toolkit:WrapPanel> </toolkit:PanelDragDropTarget> </Grid> </UserControl>
bon j'essayer de mettre le WrapPanel et le Canvas en AllowDrop="True"
et voila mon code pour le handler pour le test :
Quand je teste, aucun MessageBox ne s'affiche après le DragAndDrop d'une ligne du DataGrid
Code c# : 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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); } private void LayoutRoot_Loaded(object sender, RoutedEventArgs e) { Person p = new Person(); p.PERSON_ID = 1; p.FIRST_NAME = "rami"; p.MIDDLE_NAME = "rami"; Person p1 = new Person(); p1.PERSON_ID = 2; p1.FIRST_NAME = "Ben Khalfallah"; p1.MIDDLE_NAME = "rami"; Person p2 = new Person(); p2.PERSON_ID = 3; p2.FIRST_NAME = "Said"; p2.MIDDLE_NAME = "Said"; List<Person> liste = new List<Person>(); liste.Add(p); liste.Add(p1); liste.Add(p2); dataGrid1.ItemsSource = liste; } private void WrapPanel_Drop(object sender, DragEventArgs e) { MessageBox.Show("Dropped into WrapPanel"); } private void Canvas_Drop(object sender, DragEventArgs e) { MessageBox.Show("Dropped into Canvas"); } } public class Person { public int PERSON_ID { get; set; } public string FIRST_NAME{ get; set; } public string MIDDLE_NAME{ get; set; } }.
Quelqu'un en a une idée ?
Merci d'avance.
Partager