# Drag-and-Drop | WPF Controls | DevExpress Documentation

The [GridControl](/WPF/6084/controls-and-libraries/data-grid) supports native drag-and-drop that allows users to do the following:

- Move records within all view types ([Table View](/WPF/6294/controls-and-libraries/data-grid/views/table-view), [TreeList View](/WPF/9566/controls-and-libraries/data-grid/views/treelist-view), and [Card View](/WPF/6297/controls-and-libraries/data-grid/views/card-view)).
- Rearrange records within [Master-Detail Views](/WPF/11834/controls-and-libraries/data-grid/master-detail-data-representation).
- Transfer records between the GridControl and external controls (both [DevExpress WPF Controls](/WPF/7561/controls-and-libraries) and [Standard WPF Controls](https://docs.microsoft.com/dotnet/framework/wpf/controls/controls-by-category)).
- Transfer records between the GridControl and external applications.

Note

If the project is built against [.NET 9](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/overview), you can drag and drop records only within the same application. To drag and drop records between applications, install the [BinaryFormatter compatibility package](https://learn.microsoft.com/en-us/dotnet/standard/serialization/binaryformatter-migration-guide/compatibility-package) and set the [DeserializationSettings.EnableDataObjectBinarySerialization](/CoreLibraries/DevExpress.Utils.DeserializationSettings.EnableDataObjectBinarySerialization) property to `true`.

Refer to the following Breaking Change for additional information: [Component functionality changes due to BinaryFormatter deprecation](https://supportcenter.devexpress.com/ticket/details/t1263793/deprecation-of-microsoft-s-binaryformatter-and-its-impact-on-drag-drop-operations).

![Drag and Drop](/WPF/images/dragdrop131144.gif)

Note

- The [GridControl](/WPF/DevExpress.Xpf.Grid.GridControl) data source should implement the [IList](https://learn.microsoft.com/dotnet/api/system.collections.ilist) interface to ensure that built-in drag-and-drop data modifications work correctly.
- The [GridControl](/WPF/DevExpress.Xpf.Grid.GridControl) does not raise the [native drag-and-drop events](https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/drag-and-drop-overview) (for example, [DragDrop.DragOver](https://docs.microsoft.com/en-us/dotnet/api/system.windows.dragdrop.dragover), [DragDrop.Drop](https://docs.microsoft.com/en-us/dotnet/api/system.windows.dragdrop.drop), etc.). Use [Drag-and-Drop Options](/WPF/119241/controls-and-libraries/data-grid/drag-and-drop/drag-and-drop-options) instead.

## Enable Drag-and-Drop

Enable the [DataViewBase.AllowDragDrop](/WPF/DevExpress.Xpf.Grid.DataViewBase.AllowDragDrop) property to activate the drag-and-drop functionality as demonstrated in the following code example:

- XAML

<section id="tabpanel_06Mzus0q81_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;dxg:GridControl&gt;
    &lt;!--...--&gt;        
    &lt;dxg:GridControl.View&gt;
        &lt;dxg:TableView AllowDragDrop=&quot;True&quot; /&gt;
    &lt;/dxg:GridControl.View&gt;
&lt;/dxg:GridControl&gt;
</code></pre></section>

The [GridControl](/WPF/DevExpress.Xpf.Grid.GridControl) with the drag-and-drop functionality enabled requires 2 mouse clicks to activate a cell editor and 3 clicks to open a drop-down editor. You can set the [DataViewBase.EditorShowMode](/WPF/DevExpress.Xpf.Grid.DataViewBase.EditorShowMode) property to `MouseDownFocused` or `MouseUp` to reduce the number of clicks.

## Concepts

- [Drag-and-Drop Options](/WPF/119241/controls-and-libraries/data-grid/drag-and-drop/drag-and-drop-options)

    - Lists drag-and-drop options.

- [Process Drag-and-Drop Operations](/WPF/400431/controls-and-libraries/data-grid/drag-and-drop/process-drag-and-drop-operations)

    - Describes how to customize drag-and-drop functionality in the [GridControl](/WPF/DevExpress.Xpf.Grid.GridControl).

- [Drag-and-Drop Hint](/WPF/119240/controls-and-libraries/data-grid/drag-and-drop/drag-and-drop-hint)

    - Contains information on drag-and-drop hint customization.

- [Drop Marker](/WPF/119483/controls-and-libraries/data-grid/drag-and-drop/drop-marker)

    - Describes how to customize the drop marker.

- [End-User Drag-and-Drop](/WPF/11347/controls-and-libraries/data-grid/end-user-capabilities/drag-and-drop)

    - Contains information on end-user drag-and-drop functionality in the [GridControl](/WPF/DevExpress.Xpf.Grid.GridControl).

## Examples

- [Implement Drag-and-Drop Between the GridControl and the ListBoxEdit](https://github.com/DevExpress-Examples/how-to-implement-drag-and-drop-between-the-gridcontrol-and-the-listboxedit-t566433)
- [Implement Drag-and-Drop Between GridControls](https://github.com/DevExpress-Examples/how-to-implement-drag-and-drop-between-gridcontrols-t566656)
- [Implement Drag-and-Drop Between the GridControl and Other Controls](https://github.com/DevExpress-Examples/how-to-implement-drag-and-drop-between-the-gridcontrol-and-other-controls-t566741)
- [Customize Drop Marker](https://github.com/DevExpress-Examples/how-to-customize-drop-marker-t568780)
- [Manually Control Drag-and-Drop](https://github.com/DevExpress-Examples/out-of-maintenance-wpf-grid-handle-drag-and-drop)

See Also

[Move Nodes](/WPF/119727/controls-and-libraries/data-grid/grid-view-data-layout/nodes/move-nodes)