private void OnPlanDatailDragInitialize(object sender, DragInitializeEventArgs e) { var details = new DropIndicationDetails(); GridViewRow row = e.OriginalSource as GridViewRow ?? (e.OriginalSource as FrameworkElement).ParentOfType<GridViewRow>(); var gridView = sender as RadGridView; if (gridView == null) return; object item = row != null ? row.Item : gridView.SelectedItem; details.CurrentDraggedItem = item; IDragPayload dragPayload = DragDropPayloadManager.GeneratePayload(null); dragPayload.SetData("DraggedData", item); dragPayload.SetData("DropDetails", details); e.Data = dragPayload; //判断是否能拖拽 var planDetail = item as PlanHistoryDTO; if (planDetail != null && ViewModel.SelRequest != null && ViewModel.SelRequest.Status < (int) RequestStatus.已审核 && (planDetail.CanRequest == (int) CanRequest.可申请 || planDetail.CanRequest == (int) CanRequest.可再次申请)) { e.AllowedEffects = DragDropEffects.All; } else { e.AllowedEffects = DragDropEffects.None; } e.DragVisual = new DragVisual { Content = item, ContentTemplate = gridView.Resources["PlanDraggedItemTemplate"] as DataTemplate }; e.DragVisualOffset = e.RelativeStartPoint; }
private void OnDragInitialize(object sender, DragInitializeEventArgs e) { var details = new DropIndicationDetails(); var row = e.OriginalSource as GridViewRow ?? (e.OriginalSource as FrameworkElement).ParentOfType<GridViewRow>(); if (sender != null) { object item = row != null ? row.Item : (sender as RadGridView).SelectedItem; details.CurrentDraggedItem = item; IDragPayload dragPayload = DragDropPayloadManager.GeneratePayload(null); dragPayload.SetData("DraggedData", item); dragPayload.SetData("DropDetails", details); e.Data = dragPayload; } e.DragVisualOffset = e.RelativeStartPoint; e.AllowedEffects = DragDropEffects.All; }
private void OnDragInitialize(object sender, DragInitializeEventArgs e) { var details = new DropIndicationDetails(); var listBoxItem = e.OriginalSource as System.Windows.Controls.ListBoxItem ?? (e.OriginalSource as FrameworkElement).ParentOfType<System.Windows.Controls.ListBoxItem>(); var listBox = sender as System.Windows.Controls.ListBox; if (listBox != null) { var item = listBox.SelectedItem; details.CurrentDraggedItem = item; IDragPayload dragPayload = DragDropPayloadManager.GeneratePayload(null); dragPayload.SetData("DraggedData", item); dragPayload.SetData("DropDetails", details); e.Data = dragPayload; } e.DragVisual = new DragVisual { Content = details, ContentTemplate = AssociatedObject.Resources["DraggedItemTemplate"] as DataTemplate }; e.DragVisualOffset = e.RelativeStartPoint; e.AllowedEffects = DragDropEffects.All; }
private void OnDragInitialize(object sender, DragInitializeEventArgs e) { var treeViewItem = e.OriginalSource as RadTreeViewItem ?? (e.OriginalSource as FrameworkElement).ParentOfType<RadTreeViewItem>(); var data = treeViewItem != null ? treeViewItem.Item : (sender as RadTreeView).SelectedItem; var payload = DragDropPayloadManager.GeneratePayload(null); var dropDetails = new DropIndicationDetails { CurrentDraggedItem = data }; var visual = new DragVisual { Content = dropDetails, //ContentTemplate = data is CategoryViewModel ? AssociatedObject.Resources["CategoryDragTemplate"] as DataTemplate : AssociatedObject.Resources["ProductDragTemplate"] as DataTemplate }; payload.SetData("DraggedData", data); payload.SetData("DropDetails", dropDetails); e.DragVisual = visual; e.DragVisualOffset = e.RelativeStartPoint; e.Data = payload; e.AllowedEffects = DragDropEffects.All; FrameworkElement sourceItem = e.OriginalSource as RadTreeViewItem ?? (e.OriginalSource as FrameworkElement).ParentOfType<RadTreeViewItem>(); if (sourceItem == null) { _sourceItems = (IList)AssociatedObject.ItemsSource; } else { _sourceItems = (sourceItem as RadTreeViewItem).ParentItem != null ? (IList)(sourceItem as RadTreeViewItem).ParentItem.ItemsSource : (IList)AssociatedObject.ItemsSource; } _sourceItem = sourceItem.DataContext; _destinationItems = AssociatedObject.ItemsSource as IList; _isTreeSource = true; }