バージョン

OnSelectedItemsChanged メソッド (DataPresenterBase)

SelectedItems が変更された後に発生します。
シンタックス
'宣言
 
Protected Overridable Sub OnSelectedItemsChanged( _
   ByVal args As SelectedItemsChangedEventArgs _
) 
protected virtual void OnSelectedItemsChanged( 
   SelectedItemsChangedEventArgs args
)

パラメータ

args
解説

RecordCell、および Field の 3 つの項目タイプを選択できます。この機能は、以下のプロパティで制御されます。

SelectedItems オブジェクトは、特定の項目の選択/選択解除に使用できる 3 コレクション (DataPresenterBase.SelectedItemHolder.RecordsDataPresenterBase.SelectedItemHolder.Cells、および DataPresenterBase.SelectedItemHolder.Fields) を公開します。更に、選択は RecordRecord.IsSelectedCellCell.IsSelected、および FieldField.IsSelected プロパティの設定によって影響されます。

以下は、さまざまなシナリオの選択動作について説明します。

  • ユーザーがマウスまたはキーボード操作でレコード、セル、またはフィールを選択した場合、SelectedItemsChanging イベントが発生します。キャンセルされた場合、適切な SelectedItems コレクションが更新され、SelectedItemsChangingSelectedItemsChangedイベントが発生します。
  • IsSelected プロパティのいづれかがコードで変更された場合や SelectedItems コレクションで追加または削除された場合も動作は同じで SelectedItemsChanging および SelectedItemsChanged イベントが発生します。
  • ユーザーがセルで編集モードに入って選択されたコレクションすべてをクリアすると、同じSelectedItemsChanging and SelectedItemsChanged
  • レコードが削除された (データソースで変更された、またはユーザーが削除キーを押した) 場合、SelectedItemsRecords および Cells コレクションは適宜更新されますが、SelectedItemsChanging イベントは発生しません。ただし、SelectedItemsChanged イベントは発生します。注: データ ソースでレコードの削除をサポートし、FieldLayoutSettings.FieldLayoutSettings.AllowDelete プロパティが False に設定されていない場合、削除キーを押すと RecordsDeleting イベントが発生します。キャンセルしない場合、デフォルトで選択したレコードをすべて選択するかどうかの確認メッセージがユーザーに表示されます。
  • レコード フィルターがアクティブな場合 (FieldSettings.FieldSettings.AllowRecordFiltering が 1 つ以上のフィールドで True に設定されている場合など)、選択動作は以下になります。
    • フィルター レコードが表示されている場合 (FieldLayoutSettings.FieldLayoutSettings.FilterUIType が FilterRecord に設定されているかデフォルトのままの場合など)、フィルター セルに入った場合と他のセルに入った場合に同じ動作になります。既存の選択のクリアやイベントを発生します。
    • フィルターがフィールドラベル内のドロップダウンで公開される場合 (FieldLayoutSettings.FieldLayoutSettings.FilterUIType が LabelIcons に設定される場合)、フィルター条件を変更しても既存の選択は変更されません。たとえば、5 レコードを選択してフィルターすると、元々選択されていた 5 つのレコードでフィルターを実行します。データ ソースでレコードの削除をサポートし、FieldLayoutSettings.FieldLayoutSettings.AllowDelete プロパティが False に設定されていない場合に削除キーを押すと、選択されている 5 つのレコードの削除について確認メッセージがユーザーに表示されます。この動作は RecordsDeleting イベントをキャンセルするかコードでレコードのフィルター済みのみを削除します。

注:Record および Cell 選択は相互排他的です。Record を 1 つまたは複数選択すると、Cell 選択が自動的にクリアされ、その逆も同じ結果になります。

参照