Occurs when the
DataPresenterCommands.Copy or
DataPresenterCommands.Cut command is executed and the cell values will be placed on the clipboard.
The event handler receives an argument of type ClipboardCopyingEventArgs containing data related to this event. The following ClipboardCopyingEventArgs properties provide information specific to this event.
The following sample demonstrates how to use the ClipboardCopying event to provide a custom formatted version of the value that should be used in the output put into the clipboard.
For an overview of how to handle events in Visual Basic or Visual C#, see
Event Handlers in Visual Basic and Visual C#. For specific information and code examples illustrating how to consume events in your application, see
Consuming Events in the
.NET Framework Developer's Guide.
Imports Infragistics.Windows.DataPresenter
Imports System.Globalization
Private Sub grid_ClipboardCopying(ByVal sender As System.Object, ByVal e As Infragistics.Windows.DataPresenter.Events.ClipboardCopyingEventArgs)
Dim dp As DataPresenterBase = DirectCast(sender, DataPresenterBase)
Dim notPercentField As Field = dp.DefaultFieldLayout.Fields("NotPercent")
Dim fldIndex As Integer = e.GetSourceFieldIndex(notPercentField)
' the not percent field displays in exponential but to output the
' value in another format, we can change the value of the associated
' cell value holders
If fldIndex >= 0 Then
For i As Integer = 0 To e.RecordCount - 1
Dim cvh As CellValueHolder = e.Values(i, fldIndex)
If Not cvh Is Nothing AndAlso Not cvh.IsDisplayText AndAlso TypeOf cvh.Value Is Double Then
Dim dblValue As Double = CType(cvh.Value, Double)
cvh.Value = dblValue.ToString("R")
cvh.IsDisplayText = True
End If
Next
End If
End Sub
Private Sub grid_InitializeRecord(ByVal sender As System.Object, ByVal e As Infragistics.Windows.DataPresenter.Events.InitializeRecordEventArgs)
If Not e.ReInitialize Then
Dim dr As DataRecord = TryCast(e.Record, DataRecord)
If Not dr Is Nothing Then
dr.Cells("NotPercent").Value = 0.25
End If
End If
End Sub
using Infragistics.Windows.DataPresenter;
using System.Globalization;
private void grid_ClipboardCopying(object sender, Infragistics.Windows.DataPresenter.Events.ClipboardCopyingEventArgs e)
{
DataPresenterBase dp = sender as DataPresenterBase;
Field notPercentField = dp.DefaultFieldLayout.Fields["NotPercent"];
int fldIndex = e.GetSourceFieldIndex(notPercentField);
// the not percent field displays in exponential but to output the
// value in another format, we can change the value of the associated
// cell value holders
if (fldIndex >= 0)
{
for (int i = 0, count = e.RecordCount; i < count; i++)
{
CellValueHolder cvh = e.Values[i, fldIndex];
if (null != cvh && !cvh.IsDisplayText && cvh.Value is double)
{
double dblValue = (double)cvh.Value;
cvh.Value = dblValue.ToString("R");
cvh.IsDisplayText = true;
}
}
}
}
private void grid_InitializeRecord(object sender, Infragistics.Windows.DataPresenter.Events.InitializeRecordEventArgs e)
{
if (!e.ReInitialize)
{
DataRecord dr = e.Record as DataRecord;
if (null != dr)
{
dr.Cells["NotPercent"].Value = .25d;
}
}
}
xmlns:igDP="http://infragistics.com/DataPresenter"
xmlns:igEditors="http://infragistics.com/Editors"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
<igDP:XamDataGrid
x:Name="grid"
BindToSampleData="True"
InitializeRecord="grid_InitializeRecord"
ClipboardCopying="grid_ClipboardCopying">
<igDP:XamDataGrid.Resources>
<Style x:Key="expEditor" TargetType="{x:Type igEditors:XamTextEditor}">
<Setter Property="Format" Value="E" />
</Style>
</igDP:XamDataGrid.Resources>
<igDP:XamDataGrid.FieldLayoutSettings>
<igDP:FieldLayoutSettings
AllowClipboardOperations="All"
CopyFieldLabelsToClipboard="False" />
</igDP:XamDataGrid.FieldLayoutSettings>
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldLayout.Fields>
<igDP:Field Name="name" Label="Name"/>
<igDP:Field Name="salary" Label="$"/>
<igDP:Field Name="department" Label="Dept"/>
<igDP:Field Name="email" Label="Email"/>
<igDP:UnboundField Name="NotPercent">
<igDP:UnboundField.Settings>
<igDP:FieldSettings
EditAsType="{x:Type sys:Double}"
EditorStyle="{StaticResource expEditor}" />
</igDP:UnboundField.Settings>
</igDP:UnboundField>
</igDP:FieldLayout.Fields>
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>
Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2