Пример #1
0
        void CustomGridDragAndDrop_DragOver(object sender, GridDragOverEventArgs e)
        {
            var result = VisualTreeHelper.HitTest(this.View, Mouse.GetPosition(View));

            if (result != null && result.VisualHit != null)
            {
                var hitRow = LayoutTreeHelper.GetVisualParents(HitElement).Where(row => row is GroupGridRow || row is RowControl).FirstOrDefault() as FrameworkElement;

                if (hitRow != null)
                {
                    var rowData = hitRow.DataContext as RowData;
                    e.AllowDrop = Equals(rowData.Row.GetType(), e.DraggedRows[0].GetType());
                    e.Handled   = true;
                }
                else
                {
                    e.AllowDrop = false;
                    e.Handled   = true;
                }
            }
        }
Пример #2
0
        private void GridPackedDragDropManager_OnDragOver(object sender, GridDragOverEventArgs e)
        {
            var manager = sender as GridDragDropManager;

            if (manager == null)
            {
                return;
            }

            switch (_dragSource)
            {
            case Packing: if (!manager.AllowDrop)
                {
                    manager.AllowDrop = true;
                }
                break;

            default: if (manager.AllowDrop)
                {
                    manager.AllowDrop = false;
                }
                break;
            }
        }