バージョン

データの貼り付け、および貼り付けエラーの処理

このコントロールは廃止されたため、XamDataGrid コントロールに移行することをお勧めします。今後、新機能、バグ修正、サポートは提供されません。コードベースの XamDataGrid への移行に関する質問は、サポートまでお問い合わせください。

トピックの概要

目的

このトピックでは、xamGrid™ コントロールでコピーされたデータを貼り付ける方法、およびデータの貼り付け中に発生するエラーの処理方法について説明します。

前提条件

以下の表に、このトピックを理解するための前提条件として求められるトピックをリストします。

トピック 目的

このトピックは、貼り付けイベントを処理して、貼り付けプロセスを制御する方法を示します。

本トピックの内容

このトピックには次のセクションがあります。

データの貼り付け、および貼り付けエラーの処理

概要

この手順では、クリップボードのデータが xamGrid コントロール内でどのように貼り付けられるのかを示します。エラーが発生すると通知ダイアログが表示され、エンド ユーザーは進め方を決定できます。

以下の例では、貼り付けヘルパー メソッド PasteAsExcel および ClipboardPasteError イベントを使用しています。これらは Ultimate UI for WPF 2012 Volume 1 リリースで導入された機能です。

プレビュー

以下のスクリーンショットは最終結果のプレビューです。

xamGrid Pasting Data and Handling Paste Errors   Copy 1.png

要件

手順を実行するには、サンプル データ ソースとして提供された DataUtil クラスをプロジェクトに含める必要があります。

概要

このトピックでは、xamGrid でデータを貼り付け、また貼り付けエラーを処理する方法を、ステップごとに説明します。以下はプロセスの概念的概要です。

手順

以下の手順では、貼り付けヘルパー メソッド PasteAsExcel の使用方法および ClipboardPasteError イベントの処理方法を示します。

xamGrid コントロールをアプリケーションに追加

xamGrid コントロールをアプリケーションに追加し、データ ソースにバインドします。

ClipboardPasting および ClipboardPasteError イベントのハンドラを追加します。

XAML の場合:

<ig:XamGrid x:Name="dataGrid"
ClipboardPasting="dataGrid_ClipboardPasting"
ClipboardPasteError="dataGrid_ClipboardPasteError">
<!-- ここにさらにコードを追加します -->
</ig:XamGrid>

コピーと貼り付け機能の有効化

xamGrid コピーと貼り付け機能を有効にします。

XAML の場合:

<ig:XamGrid.ClipboardSettings>
  <ig:ClipboardSettings AllowCopy="True"
      CopyOptions="ExcludeHeaders"
      CopyType="SelectedCells"
      AllowPaste="True"/>
</ig:XamGrid.ClipboardSettings>

複数セル選択の有効化

複数セル選択を xamGrid で有効にできます。これによって、エンド ユーザーはコピーする xamGrid セルをその中で選択することができます。

XAML の場合:

<ig:XamGrid.SelectionSettings>
  <ig:SelectionSettings
      CellClickAction="SelectCell"
      CellSelection="Multiple" />
</ig:XamGrid.SelectionSettings>

ClipboardPasting イベントの処理

PasteAsExcel メソッドを使用して、xamGrid 内で貼り付けを実行します。xamGrid または Excel セルの内容を貼り付けることができます。

C# の場合:

private void dataGrid_ClipboardPasting(object sender, Infragistics.Controls.Grids.ClipboardPastingEventArgs e)
{
  //  xamGrid のセルの四角形選択を貼り付けます
  e.PasteAsExcel();
}

Visual Basic の場合:

Private Sub dataGrid_ClipboardPasting(sender As Object, e As Infragistics.Controls.Grids.ClipboardPastingEventArgs)
  ' xamGrid のセルの四角形選択を貼り付けます
  e.PasteAsExcel()
End Sub

ClipboardPasteError イベントの処理

ClipboardPasteError ハンドラーでエラー タイプが確認され、エラーが回復可能な場合は、貼り付けを続行できます。

エラーが回復可能な場合は確認ダイアログが表示され、エンド ユーザーは、エラーの発生に関係なく貼り付けを続行するかどうかを決定します。

C# の場合:

private void dataGrid_ClipboardPasteError(object sender, Infragistics.Controls.Grids.ClipboardPasteErrorEventArgs e)
{
  // 貼り付けエラーのタイプを取得します
  string strErrorType = e.ErrorType.ToString();
  // 貼り付けがエラーの後に続行できるかを確認します
  bool isRecoverableError = e.IsRecoverable;
  if (isRecoverableError)
  {
    MessageBoxButton button = MessageBoxButton.OKCancel;
    string errorMsg = string.Format("An error occured during the paste process of type {0}", strErrorType);
    string questionMsg = "Do you want to continue?";
    MessageBoxResult result = MessageBox.Show(errorMsg + "\n" + questionMsg, "Error Dialog", button);
    switch (result)
    {
      case MessageBoxResult.OK:
        e.AttemptRecover = true;
        break;
      case MessageBoxResult.Cancel:
        e.AttemptRecover = false;
        break;
    }
  }
}

Visual Basic の場合:

Private Sub dataGrid_ClipboardPasteError(sender As Object, e As Infragistics.Controls.Grids.ClipboardPasteErrorEventArgs)
  ' 貼り付けエラーのタイプを取得します
  Dim strErrorType As String = e.ErrorType.ToString()
  ' 貼り付けがエラーの後に続行できるかを確認します
  Dim isRecoverableError As Boolean = e.IsRecoverable
  If isRecoverableError Then
    Dim button As MessageBoxButton = MessageBoxButton.OKCancel
    Dim errorMsg As String = String.Format("An error occured during the paste process of type {0}", strErrorType)
    Dim questionMsg As String = "Do you want to continue?"
    Dim result As MessageBoxResult = MessageBox.Show(errorMsg & vbLf & questionMsg, "Error Dialog", button)
    Select Case result
      Case MessageBoxResult.OK
        e.AttemptRecover = True
        Exit Select
      Case MessageBoxResult.Cancel
        e.AttemptRecover = False
        Exit Select
    End Select
  End If
End Sub

関連コンテンツ

トピック

以下のトピックでは、このトピックに関連する情報を提供しています。

トピック 目的

このトピックは、xamGrid コントロールでコピー/貼り付け機能を有効にする方法を示します。

このトピックは、利用可能なコピー オプションを示します。

このトピックは、コピーされるもの (xamGrid コントロール内で選択されたセルまたは行) の指定方法を示します。

このトピックは、コピー イベントを処理してコピー プロセスを制御する方法を示します。