示例#1
0
        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;
        }
示例#2
0
        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;
        }
示例#3
0
        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;
        }
示例#4
0
        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;
        }