Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <ListView Grid.Row="1" Grid.Column="0" Background="Transparent"
- ItemsSource="{Binding MyViewModelObservableCollection}"
- AllowDrop = "True"
- Drop = "{Binding TheDropHandlerInTheViewModel, PassTheDropEventArgs}"
- DragOver = "{Binding TheDragOverHandlerInTheViewModel, PassTheDrageEventArgs}">
- </ListView>
- private void ImagePanel_Drop(object sender, DragEventArgs e)
- {
- if (e.Data.GetDataPresent(DataFormats.FileDrop))
- {
- // можно же перетянуть много файлов, так что....
- string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
- // делаешь что-то
- }
- }
- <StackPanel Name="ImagePanel" Drop="ImagePanel_Drop" AllowDrop="true">
- ...
- </StackPanel>
- Drop="ImagePanel_Drop" AllowDrop="true"
- <Grid>
- <ListBox ItemsSource="{Binding Items}"
- dd:DragDrop.IsDropTarget="True"
- dd:DragDrop.DropHandler="{Binding}"
- >
- </ListBox>
- </Grid>
- public class MainViewModel : ViewModelBase, IDropTarget
- {
- public ObservableCollection<string> Items { get; set; }
- public MainViewModel()
- {
- Items = new ObservableCollection<string>();
- }
- public void DragOver(IDropInfo dropInfo)
- {
- dropInfo.DropTargetAdorner = DropTargetAdorners.Insert;
- var dataObject = dropInfo.Data as IDataObject;
- dropInfo.Effects = dataObject != null && dataObject.GetDataPresent(DataFormats.FileDrop)
- ? DragDropEffects.Copy
- : DragDropEffects.Move;
- }
- public void Drop(IDropInfo dropInfo)
- {
- var dataObject = dropInfo.Data as DataObject;
- if (dataObject != null && dataObject.ContainsFileDropList())
- {
- var files = dataObject.GetFileDropList();
- foreach (var file in files)
- {
- Items.Add(file);
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment