Infragistics(R) NetAdvantage(R) WPF
データの編集
このトピックについてのご意見・ご感想をE メールにてお寄せください (日本語と英語に対応しています)。 また、弊社サービス・製品についてご質問・ご要望などがございましたら、こちらからお気軽にお問い合わせください。

Glossary Item Box

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

編集動作

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

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

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

xamGrid が編集モードである場合、キーボードによるナビゲーションは以下の動作につながります。

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

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

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

編集イベント

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

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

編集メソッド

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

編集設定

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

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;

関連トピック

テンプレート列でデータを編集

コード ビハインドでセル値を変更

データの検証

編集イベントを使用してカスタム エディターを作成

xamGrid のエディターを常に編集モードにする