バージョン

xamGrid コントロールの代わりに xamDataGrid コントロールを使用してください。xamGrid は数年以内に廃止する予定のため、新しい機能の追加はありません。xamGrid のサポートおよび重要なバグ修正は廃止時まで提供されます。コードベースの xamDataGrid への移動に関する質問は、サポートまでお問い合わせください。

データの編集

xamGrid コントロールによって、エンド ユーザーはその行でデータを編集できます。エンドユーザーは、行全体で編集モードに入る、またはセル単位で編集モードに入るの 2 つの方法でデータを編集できます。このコントロールは IEditableObject インターフェイスを実装するデータをサポートし、適宜 BeginEdit、CancelEdit および EndEdit メソッドを実行します。 EditingSettings オブジェクトは、xamGrid での編集に関して、多くのオプションをユーザーに提供します。コントロールの編集動作、イベント、メソッドおよび設定を以下に説明します。

編集動作

xamGrid のデータの編集は、エンド ユーザーが編集モードに入る場合に限って可能です。これはチェックボックスの列にも適用され、そのセルが編集モードの時に限り、チェックボックスが編集可能になります。

テンプレート列を編集できるようにするには、 TemplateColumn オブジェクトの EditorTemplate プロパティを使用してカスタム エディターを設定します。テンプレート列の編集についての詳細は、 「テンプレート列でデータを編集」を参照してください。

開発者固有の値コンバーターを提供するには、列の EditorValueConverter および EditorValueConverterParameter プロパティを設定します。

キーボードの編集動作

  • Enter - 編集モードを終了し、変更を行います。

  • 上矢印 - 編集モードを終了し、変更を行い、前の行がある場合は前の行に移動します。

  • 下矢印 - 編集モードを終了し、変更を行い、次の行がある場合は次の行に移動します。

  • 左矢印 - 編集モードを終了し、変更を行い、前のセルがある場合は前のセルに移動します。編集モードが行全体を対象とし、移動されたセルが新しい行にない場合は編集モードのままです。

  • 右矢印 - 編集モードを終了し、変更を行い、次のセルがある場合は次のセルに移動します。編集モードが行全体を対象とし、移動されたセルが新しい行にない場合は編集モードのままです。

  • Tab - 次のセルに移動し、変更を行います。編集モードが行全体を対象とし、移動されたセルが新しい行にない場合は編集モードのままです。

  • Escape キー - 編集モードを終了し、変更をキャンセルします。

Note

: エディターでは編集モードが優先されます。したがって、エディターが特定のキーストロークを処理すると、xamGrid が実装する動作は置き換えられます。

マウスの編集動作

  • セルの上にホバー - AllowEditingHover に設定される場合、以前に編集したセルの変更を保存し、現在のセルで編集モードに入ります。

  • セルの上にシングル クリック - IsMouseActionEditingEnabledSingleClick に設定される場合、以前に編集したセルの変更を保存し、現在のセルで編集モードに入ります。

  • セルでダブル クリック - IsMouseActionEditingEnabledDoubleClick に設定される場合、以前に編集したセルの変更を保存し、現在のセルで編集モードに入ります。

  • xamGrid 以外にクリック - 以前に編集したセルの変更を保存します。

Note
注:

編集モードに入るときに、 AllowEditing プロパティの値に基づいて xamGrid が単一のセルまたは行のすべてのセルの編集を開始します。

AllowEditingValidation が列で True の時、編集モードを終了するにはデータが有効であることが必要です。つまり、エンドユーザーが入力するデータは、例外をスローしません。そうでない場合は、Escape キーを押して変更をキャンセルして編集モードを終了する必要があります。データの入力規則についての詳細は、 データの検証を参照してください。

水平スクロールバーでのスクロールは、 AllowEditing が Row に設定されている時は編集モードを終了しません。垂直スクロールバーでのスクロールは、Row および Cell 編集の両方を終了します。

編集イベント

xamGrid コントロールは、カスタム動作を実装するためにさまざまな編集イベントを提供します。以下に編集イベントをリストします。

Note
注:

CellEnteringEditMode などの「ing」イベントはすべてキャンセル可能です。

編集メソッド

以下は、コード ビハインドから編集モードに入ったり、編集モードを終了するために xamGrid が提供する編集メソッドのリストです。

編集設定

EditingSettings オブジェクトは、xamGrid の編集を設定するためのプロパティのリストを提供します。

  • AllowEditing – エンド ユーザーがセルで編集モードに入ろうとする時に xamGrid の動作を設定します。Cell、Row、Hover または None の EditingType 列挙値を使用できます。

  • IsEnterKeyEditingEnabled – Enter キーで編集モードに入ることができます。

  • IsF2EditingEnabled – F2 キーで編集モードに入ることができます。

  • IsMouseActionEditingEnabled – シングルクリックまたはダブルクリックで編集モードに入ることができます。

  • IsOnCellActiveEditingEnabled – セルがアクティブである場合、たとえば Tab キーで編集モードに入ることができます。

AllowEditing プロパティを Hover に設定した場合、マウスでホバーするだけで、グリッドは編集モードに入ります。xamGrid の RowHover プロパティを使用して、単一のセルまたは行全体が編集モードに入るかどうかを指定します。

コントロール全体で編集オプションを設定するだけでなく、個々の ColumnLayout オブジェクトでオプションを設定することもできます。さらに、個々の EditableColumn オブジェクトは、列ベースで編集を有効/無効にするための IsReadOnly プロパティを公開します。以下のコードは、トップ レベル データに対しては行単位で、そしてネストされたデータに対してはセル単位で編集を有効にする方法を示します。

XAML の場合:

<ig:XamGrid x:Name="xamGrid1">
    <ig:XamGrid.EditingSettings>
        <ig:EditingSettings AllowEditing="Row" />
    </ig:XamGrid.EditingSettings>
    <ig:XamGrid.Columns>
        <ig:ColumnLayout Key="Products">
            <ig:ColumnLayout.EditingSettings >
                <ig:EditingSettingsOverride AllowEditing="Cell" />
            </ig:ColumnLayout.EditingSettings >
        </ig:ColumnLayout>
    </ig:XamGrid.Columns>
</ig:XamGrid>

Visual Basic の場合:

Me.xamGrid1.EditingSettings.AllowEditing = EditingType.Row
Me.xamGrid1.Columns.ColumnLayouts.FromKey("Products").EditingSettings.AllowEditing = EditingType.Cell

C# の場合:

this.xamGrid1.EditingSettings.AllowEditing = EditingType.Row;
this.xamGrid1.ColumnLayouts.FromKey("Products").EditingSettings.AllowEditing = EditingType.Cell;