Back to Devexpress

DataViewBase.DragRecordOver Event

wpf-devexpress-dot-xpf-dot-grid-dot-dataviewbase-c0a94fa1.md

latest11.1 KB
Original Source

DataViewBase.DragRecordOver Event

Occurs continuously while a record is dragged (moved) within the drop target’s boundary.

Namespace : DevExpress.Xpf.Grid

Assembly : DevExpress.Xpf.Grid.v25.2.Core.dll

NuGet Package : DevExpress.Wpf.Grid.Core

Declaration

csharp
public event EventHandler<DragRecordOverEventArgs> DragRecordOver
vb
Public Event DragRecordOver As EventHandler(Of DragRecordOverEventArgs)

Event Data

The DragRecordOver event's data class is DragRecordOverEventArgs. The following properties provide information specific to this event:

PropertyDescription
AllowedEffectsGets a member of the DragDropEffects enumeration that specifies which operations are allowed by the originator of the drag event. Inherited from DragEventArgsBase.
DataGets or sets a data object that contains the data associated with the corresponding drag event. Inherited from DragEventArgsBase.
DropPositionGets a drop position that specifies how a record is placed after it has been dropped. Inherited from DragEventArgsBase.
DropPositionRelativeCoefficientGets a number between 0 and 1, presenting a drop position relative to the target record.
EffectsGets or sets the target drag-and-drop operation. Inherited from DragEventArgsBase.
HandledGets or sets a value that indicates the present state of the event handling for a routed event as it travels the route. Inherited from RoutedEventArgs.
IsFromOutsideGets whether the dragged record is from another control. Inherited from DragEventArgsBase.
KeyStatesGets a flag enumeration indicating the current state of the SHIFT, CTRL, and ALT keys, as well as the state of the mouse buttons. Inherited from DragEventArgsBase.
OriginalSourceGets the original reporting source as determined by pure hit testing, before any possible Source adjustment by a parent class. Inherited from RoutedEventArgs.
RoutedEventGets or sets the RoutedEvent associated with this RoutedEventArgs instance. Inherited from RoutedEventArgs.
SourceGets or sets a reference to the object that raised the event. Inherited from RoutedEventArgs.
TargetRecordGets a record that is drop target. Inherited from DragEventArgsBase.
TargetRowHandleGets the target row handle. Inherited from DragEventArgsBase.

The event data class exposes the following methods:

MethodDescription
GetRecordType()Gets the Type of the transferred records. Inherited from DragEventArgsBase.
InvokeEventHandler(Delegate, Object)When overridden in a derived class, provides a way to invoke event handlers in a type-specific way, which can increase efficiency over the base implementation. Inherited from RoutedEventArgs.
OnSetSource(Object)When overridden in a derived class, provides a notification callback entry point whenever the value of the Source property of an instance changes. Inherited from RoutedEventArgs.

Remarks

You can use the DragRecordOver event to deny a drop operation over specific records and specify visual feedback indicating the operation is not allowed:

xaml
<dxg:GridControl>
   <!---->
   <dxg:GridControl.View>
      <dxg:TreeListView AllowDragDrop="True" DragRecordOver="OnDragRecordOver" />
   </dxg:GridControl.View>
</dxg:GridControl>
csharp
void OnDragRecordOver(object sender, DragRecordOverEventArgs e) {
   string position = ((Employee)e.TargetRecord).Position;
   if (position == "President" || position == "Vice President") {
      e.Effects = DragDropEffects.None;
      e.Handled = true;
   }
}

The following code snippets (auto-collected from DevExpress Examples) contain references to the DragRecordOver event.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

how-to-implement-drag-and-drop-between-gridcontrols-t566656/CS/MainWindow.xaml#L19

xml
AllowDragDrop="True"
                      DragRecordOver="OnDragRecordOver"/>
</dxg:GridControl.View>

how-to-implement-drag-and-drop-between-the-gridcontrol-and-other-controls-t566741/CS/MainWindow.xaml#L27

xml
AllowDragDrop="True"
DragRecordOver="OnDragRecordOver"
DropRecord="OnDropRecord"/>

how-to-implement-drag-and-drop-between-the-gridcontrol-and-the-listboxedit-t566433/CS/MainWindow.xaml#L16

xml
<dxg:GridControl.View>
    <dxg:TableView AutoWidth="True" AllowDragDrop="True" DragRecordOver="OnDragRecordOver" />
</dxg:GridControl.View>

how-to-implement-drag-and-drop-between-gridcontrols-t566656/CS/obj/Debug/net8.0-windows/MainWindow.g.cs#L100

csharp
#line 19 "..\..\..\MainWindow.xaml"
((DevExpress.Xpf.Grid.TreeListView)(target)).DragRecordOver += new System.EventHandler<DevExpress.Xpf.Core.DragRecordOverEventArgs>(this.OnDragRecordOver);

how-to-implement-drag-and-drop-between-the-gridcontrol-and-the-listboxedit-t566433/CS/obj/Debug/net8.0-windows/MainWindow.g.cs#L120

csharp
#line 16 "..\..\..\MainWindow.xaml"
((DevExpress.Xpf.Grid.TableView)(target)).DragRecordOver += new System.EventHandler<DevExpress.Xpf.Core.DragRecordOverEventArgs>(this.OnDragRecordOver);

how-to-implement-drag-and-drop-between-gridcontrols-t566656/VB/obj.NetFX/x86/Debug/MainWindow.g.vb#L99

vb
#ExternalSource("..\..\..\MainWindow.xaml",19)
AddHandler CType(target,DevExpress.Xpf.Grid.TreeListView).DragRecordOver, New System.EventHandler(Of DevExpress.Xpf.Core.DragRecordOverEventArgs)(AddressOf Me.OnDragRecordOver)

how-to-implement-drag-and-drop-between-the-gridcontrol-and-the-listboxedit-t566433/VB/obj.NetFX/x86/Debug/MainWindow.g.vb#L119

vb
#ExternalSource("..\..\..\MainWindow.xaml",16)
AddHandler CType(target,DevExpress.Xpf.Grid.TableView).DragRecordOver, New System.EventHandler(Of DevExpress.Xpf.Core.DragRecordOverEventArgs)(AddressOf Me.OnDragRecordOver)

See Also

Process Drag-and-Drop Operations

DataViewBase Class

DataViewBase Members

DevExpress.Xpf.Grid Namespace