private void FileListView_Drop(object sender, DragEventArgs e) { /** * Checks if item has been droped from within the list or outside */ if (startIndex < 0) { OuterFileDrop(sender, e); return; } if (e.Data.GetDataPresent("componentItem") && sender == e.Source) { ListView listView = sender as ListView; ListViewItem listViewItem = FindAnchestor.Find <ListViewItem>((DependencyObject)e.OriginalSource); if (listViewItem == null) { startIndex = -1; e.Effects = DragDropEffects.None; return; } var component = (IData)listView.ItemContainerGenerator.ItemFromContainer(listViewItem); //var source = (IData)FileListView.Items.GetItemAt(startIndex); startIndex = -1; //((ProjectViewModel)this.DataContext).OnDrop(source, component); } }
private void TreeView_Drop(object sender, DragEventArgs e) { var index = -1; //if (startIndex < 0) return; if (e.Data.GetDataPresent("taskItem")) { //ListView listView = sender as ListView; TreeViewItem treeViewItem = FindAnchestor.Find <TreeViewItem>((DependencyObject)e.OriginalSource); if (treeViewItem == null) { e.Effects = DragDropEffects.None; return; } var item = ((ITask)projectTaskList.SelectedItem); startIndex = ((ProjectViewModel)DataContext).ProjectTasks.IndexOf(item); IElement component = (IElement)projectTaskList.ItemContainerGenerator.ItemFromContainer(treeViewItem); IElement source = (IElement)projectTaskList.Items.GetItemAt(startIndex); e.Effects = DragDropEffects.Move; ((ProjectViewModel)DataContext).OnDropTask(source, component); startIndex = -1; index = -1; } else { //Console.WriteLine("TreeView_Drop failed"); } }
private void FileListView_MouseMove(object sender, MouseEventArgs e) { Point mousePos = e.GetPosition(null); Vector diff = startPoint - mousePos; if (e.LeftButton == MouseButtonState.Pressed && (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)) { ListView listView = sender as ListView; ListViewItem listViewItem = FindAnchestor.Find <ListViewItem>((DependencyObject)e.OriginalSource); if (listViewItem == null) { return; } IData component = (IData)listView.ItemContainerGenerator.ItemFromContainer(listViewItem); if (component == null) { return; } //startIndex = FileListView.SelectedIndex; DataObject dragData = new DataObject("componentItem", component); DragDrop.DoDragDrop(listViewItem, dragData, DragDropEffects.Copy | DragDropEffects.Move); } }
private void TreeView_MouseMove(object sender, MouseEventArgs e) { Point mousePos = e.GetPosition(null); Vector diff = startPoint - mousePos; if (e.LeftButton == MouseButtonState.Pressed && (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)) { //TreeView treeView = sender as TreeView; TreeViewItem treeviewItem = FindAnchestor.Find <TreeViewItem>((DependencyObject)e.OriginalSource); if (treeviewItem == null) { return; } IElement component = (IElement)projectTaskList.ItemContainerGenerator.ItemFromContainer(treeviewItem); if (component == null) { return; } //startIndex = FileListView.SelectedIndex; DataObject dragData = new DataObject("taskItem", component); DragDrop.DoDragDrop(treeviewItem, dragData, DragDropEffects.Copy | DragDropEffects.Move); } else { //Console.WriteLine("TreeView_MouseMove failed"); } }