Back to Devexpress

TreeListView.ClipboardNodeCopying Event

wpf-devexpress-dot-xpf-dot-grid-dot-treelistview-d8662ba5.md

latest6.9 KB
Original Source

TreeListView.ClipboardNodeCopying Event

Fires before a data row, group row, column headers, or band headers are copied to the clipboard. Allows you to apply a format, change the copied data, or skip a data row or header.

Namespace : DevExpress.Xpf.Grid

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

NuGet Package : DevExpress.Wpf.Grid.Core

Declaration

csharp
public event EventHandler<ClipboardRowCopyingEventArgs> ClipboardNodeCopying
vb
Public Event ClipboardNodeCopying As EventHandler(Of ClipboardRowCopyingEventArgs)

Event Data

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

PropertyDescription
CancelGets or sets whether to cancel the copy operation.
HeadersGets a collection of column headers or band headers.
RowHandle
TypeGets the processed object’s type (row, column header, band header, group, group summary).
ValuesGets a collection of row or group row values.

Remarks

The code sample below shows how to change the appearance of rows and headers.

xaml
<dxg:GridControl ItemsSource="{Binding Items}" SelectionMode="Cell">
    <dxg:GridControl.Bands>
        <dxg:GridControlBand Header="Main">
            <dxg:GridControlBand.Columns>
                <dxg:GridColumn FieldName="Id" />
                <dxg:GridColumn FieldName="Name" />
            </dxg:GridControlBand.Columns>
        </dxg:GridControlBand>
        <dxg:GridControlBand Header="Second">
            <dxg:GridControlBand.Columns>
                <dxg:GridColumn FieldName="IsSet" />
                <dxg:GridColumn FieldName="Time" />
            </dxg:GridControlBand.Columns>
        </dxg:GridControlBand>
    </dxg:GridControl.Bands>
    <dxg:GridControl.Columns />
    <dxg:GridControl.View>
        <dxg:TreeListView KeyFieldName="Id" ParentFieldName="GroupId"
            ClipboardCopyOptions="All"
            ClipboardMode="Formatted"
            ClipboardNodeCopying="TreeListView_ClipboardNodeCopying"/>
    </dxg:GridControl.View>       
</dxg:GridControl>
csharp
void TreeListView_ClipboardNodeCopying(object sender, ClipboardRowCopyingEventArgs e) {
    switch(e.Type) {
        case ClipboardInfoType.Row:
            foreach(var value in e.Values) {
                switch(value.Column.FieldName) {
                    case "Id":
                        value.BackColor = Color.White;
                        value.ForeColor = Color.Orange;
                        break;
                    case "Name":
                        value.BackColor = Color.DarkGray;
                        value.ForeColor = Color.Black;
                        break;                                
                    default:
                        break;
                }
            }
            break;
        case ClipboardInfoType.ColumnHeader:
            foreach(var value in e.Headers) {
                switch(value.Column.FieldName) {
                    case "Id":
                    case "Name":
                        value.BackColor = Color.LightYellow;
                        break;
                    case "IsSet":
                    case "Time":
                        value.BackColor = Color.LightSlateGray;
                        break;
                    default:
                        break;
                }
            }
            break;
        case ClipboardInfoType.BandHeader:
            foreach(var value in e.Headers) {
                switch(value.Band.Header) {
                    case "Main":
                        value.BackColor = Color.Yellow;
                        break;
                    case "Second":
                        value.BackColor = Color.DarkGray;
                        value.ForeColor = Color.White;
                        break;
                    default:
                        break;
                }
            }
            break;
        case ClipboardInfoType.Group:
            e.Values[0].BackColor = Color.Pink;                    
            e.Values[0].Value = "Grouping #" + e.Values[0].OriginalValue.ToString().Substring(13);
            break;
        default:
            break;
    }
}
vb
Private Sub TableView_ClipboardRowCopying(ByVal sender As Object, ByVal e As ClipboardRowCopyingEventArgs)
    Select Case e.Type
        Case ClipboardInfoType.Row
            For Each value In e.Values
                Select Case value.Column.FieldName
                    Case "Id"
                        value.BackColor = Color.White
                        value.ForeColor = Color.Orange
                    Case "Name"
                        value.BackColor = Color.DarkGray
                        value.ForeColor = Color.Black
                    Case Else
                End Select
            Next
        Case ClipboardInfoType.ColumnHeader
            For Each value In e.Headers
                Select Case value.Column.FieldName
                    Case "Id", "Name"
                        value.BackColor = Color.LightYellow
                    Case "IsSet", "Time"
                        value.BackColor = Color.LightSlateGray
                    Case Else
                End Select
            Next
        Case ClipboardInfoType.BandHeader
            For Each value In e.Headers
                Select Case value.Band.Header
                    Case "Main"
                        value.BackColor = Color.Yellow
                    Case "Second"
                        value.BackColor = Color.DarkGray
                        value.ForeColor = Color.White
                    Case Else
                End Select
            Next
        Case ClipboardInfoType.Group
            e.Values(0).BackColor = Color.Pink
            e.Values(0).Value = "Grouping #" & e.Values(0).OriginalValue.ToString().Substring(13)
        Case Else
    End Select
End Sub

See Also

TreeListView Class

TreeListView Members

DevExpress.Xpf.Grid Namespace