Back to Devexpress

DataViewBase.GiveRecordDragFeedback Event

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

latest6.5 KB
Original Source

DataViewBase.GiveRecordDragFeedback Event

Occurs continuously while a drag-and-drop operation is in progress, and enables the drag source to give feedback to the user.

Namespace : DevExpress.Xpf.Grid

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

NuGet Package : DevExpress.Wpf.Grid.Core

Declaration

csharp
public event EventHandler<GiveRecordDragFeedbackEventArgs> GiveRecordDragFeedback
vb
Public Event GiveRecordDragFeedback As EventHandler(Of GiveRecordDragFeedbackEventArgs)

Event Data

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

PropertyDescription
DataGets or sets a data object that contains the data associated with the DataViewBase.GiveRecordDragFeedback event.
EffectsGets or sets the target drag-and-drop operation.
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.
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.
UseDefaultCursorsGets or sets whether a drag operation should use the default cursors that are associated with drag-drop effects.

The event data class exposes the following methods:

MethodDescription
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 GiveRecordDragFeedback to change the mouse pointer appearance to indicate the effects allowed by the drop target.

The DataViewBase.DragRecordOver event is paired with the GiveRecordDragFeedback event. In the DataViewBase.DragRecordOver event handler, you can check whether any modifier keys are pressed, which typically indicates whether the user intends a move or a copy action. After these checks are performed, you set DragEventArgsBase.Effects property to notify the drag source what effect dropping the data will have. The drag source receives this information in the GiveRecordDragFeedbackEventArgs.Effects property of the GiveRecordDragFeedback event arguments, and can set an appropriate cursor to give feedback to the user.

The code sample below shows how to display an arrow symbol for moving nodes to another node’s child collection:

xaml
<dxg:GridControl>
   <!----> 
   <dxg:GridControl.View>
      <dxg:TreeListView AllowDragDrop="True" DragRecordOver="OnDragRecordOver" GiveRecordDragFeedback="OnGiveRecordDragFeedback" />
   </dxg:GridControl.View>
</dxg:GridControl>
csharp
void OnDragRecordOver(object sender, DragRecordOverEventArgs e) {
   if (e.DropPosition == DropPosition.Inside) {
      e.Effects = DragDropEffects.Link;
      e.Handled = true;
   }
}
void OnGiveRecordDragFeedback(object sender, GiveRecordDragFeedbackEventArgs e) {
   if (e.Effects == DragDropEffects.Link) {
      Mouse.SetCursor(Cursors.UpArrow);
   } else {
      e.UseDefaultCursors = true;
   }
   e.Handled = true;
}

See Also

DataViewBase Class

DataViewBase Members

DevExpress.Xpf.Grid Namespace