Back to Devexpress

TreeViewControl.StartRecordDrag Event

wpf-devexpress-dot-xpf-dot-grid-dot-treeviewcontrol-66b9f1af.md

latest5.9 KB
Original Source

TreeViewControl.StartRecordDrag Event

Occurs when a drag-and-drop operation is started.

Namespace : DevExpress.Xpf.Grid

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

NuGet Package : DevExpress.Wpf.Grid.Core

Declaration

csharp
public event EventHandler<StartRecordDragEventArgs> StartRecordDrag
vb
Public Event StartRecordDrag As EventHandler(Of StartRecordDragEventArgs)

Event Data

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

PropertyDescription
AllowDragGets or sets whether an end-user can drag records.
AllowedEffectsGets a member of the DragDropEffects enumeration that specifies which operations are allowed by the originator of the drag event.
DataGets or sets a data object that contains the data associated with the DataViewBase.StartRecordDrag event.
DragElementGets a drag element that is a control on which the drag-and-drop operation has been initiated.
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.
RecordsGets dragged records.
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.

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 StartRecordDrag event to cancel a drag operation.

The following code sample allows users to drag only records that do not have children:

xaml
<dxg:TreeViewControl x:Name="treeview"
                     AllowDragDrop="True"
                     StartRecordDrag="treeview_StartRecordDrag"/>
csharp
void treeview_StartRecordDrag(object sender, DevExpress.Xpf.Core.StartRecordDragEventArgs e) {
    foreach (Employee employee in e.Records)
        e.AllowDrag = !treeview.GetNodeByValue(employee.Name).HasChildren;
    e.Handled = true;
}
vb
Private Sub treeview_StartRecordDrag(ByVal sender As Object, ByVal e As DevExpress.Xpf.Core.StartRecordDragEventArgs)
    For Each employee As Employee In e.Records
        e.AllowDrag = Not treeview.GetNodeByValue(employee.Name).HasChildren
    Next

    e.Handled = True
End Sub

For information about drag-and-drop operations, refer to the following DevExpress WPF Grid help topic: Drag-and-Drop.

See Also

TreeViewControl Class

TreeViewControl Members

DevExpress.Xpf.Grid Namespace