예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="e"></param>
        protected override void OnDrop(DragEventArgs e)
        {
            base.OnDrop(e);
            this.HideDragAdorner();

            SchedulerWindow.SchedulerRunItemDisplayModel item = e.Data.GetData("RunItem") as SchedulerWindow.SchedulerRunItemDisplayModel;
            int draggedIndex = (int)e.Data.GetData("Index");
            var thisIndex    = this._schedulerWindow.ScheduledRuns.Items.IndexOf(this.DataContext);

            this._schedulerWindow.MoveQueueInsert((SchedulerWindow.SchedulerRunItemDisplayModel)item, draggedIndex, thisIndex);
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="e"></param>
        protected override void OnDragEnter(DragEventArgs e)
        {
            base.OnDragEnter(e);
            SchedulerWindow.SchedulerRunItemDisplayModel model = e.Data.GetData("RunItem") as SchedulerWindow.SchedulerRunItemDisplayModel;
            int draggedIndex = (int)e.Data.GetData("Index");

            if (model.IsRunStarted)
            {
                AllowDrop = false;
                e.Handled = true;
                return;
            }

            if (model.IsRunStarted)
            {
                e.Effects = DragDropEffects.None;
            }
            var thisIndex = this._schedulerWindow.ScheduledRuns.Items.IndexOf(this.DataContext);

            bool isOrderUp = true;

            if (thisIndex == draggedIndex)
            {
                return;
            }
            else if (thisIndex > draggedIndex)
            {
                isOrderUp = false;
            }

            var             layer       = AdornerLayer.GetAdornerLayer(this);
            DragDropAdorner moveAdorner = (DragDropAdorner)layer.GetAdorners(this)
                                          .First(t => t.GetType() == typeof(DragDropAdorner));

            if (moveAdorner != null)
            {
                if (isOrderUp)
                {
                    moveAdorner.SetMoveUpAdorner();
                }
                else
                {
                    moveAdorner.SetMoveDownAdorner();
                }
                moveAdorner.Visibility = Visibility.Visible;
            }
        }