バージョン

DataValueChanged イベントについて

FieldSettings オブジェクトの DataValueChangedNotificationsActive プロパティを True に設定することによって、フィールド内のセル値に対する変更を追跡できます。あるフィールドでこの機能を有効にすると、DataPresenter コントロールは、そのフィールド内のセルに対して DataValueChanged イベントと InitializeCellValuePresenter イベントを発生させます。

DataValueChanged イベント

DataPresenter コントロールは、以下の場合に、DataValueChanged イベントを発生させます。

  1. FieldSettings オブジェクトの DataValueChangedNotificationsActive プロパティを True に設定することによって、Field オブジェクトでのデータ値の変更を追跡している場合。

  2. データ値の変更を追跡しているフィールドで、セルの値が変化する場合。

  3. DataPresenter コントロールが、 DataRecord オブジェクトを値が変化しているセルに割り当てている場合。DataPresenter コントロールに DataValueChanged イベントを発生させたい場合は、DataRecord オブジェクトを割り当てていなくても、その RecordLoadMode プロパティを PreloadRecords に設定し、FieldSettings オブジェクトの DataValueChangedScope プロパティを AllAllocatedRecords に設定する必要があります。

DataPresenter コントロールは DataValueChangedEventArgs オブジェクトを DataValueChanged イベント ハンドラーに渡します。DataValueChangedEventArgs オブジェクトが公開するプロパティを使用して、セルの値が変化するときにセルを強調表示できます。DataValueChangedEventArgs オブジェクトは以下のプロパティを公開します。

  • CellValuePresenter - このプロパティは、セル値の表示に使用する CellValuePresenter オブジェクトへの参照を提供します。このプロパティは、セルが表示されておらず、そのセルの DataRecord オブジェクトが割り当てられていない場合、NULL を返すことがあります。

  • ValueHistory - このプロパティは、データ値の変更のリストで、最新の変更が 0 番目のインデックスに格納されます。デフォルトで、データ値の変更数は 1 に設定されます。ただし、FieldSettings オブジェクトの DataValueChangedHistoryLimit プロパティを設定することによって、セルのデータ値の履歴に保持される変更数を変更できます。DataValueChangedHistoryLimit プロパティを 0 に設定する場合、ValueHistory プロパティは NULL になります。

  • Field - セルが属する Field オブジェクト。

  • Record - セルが属する DataRecord オブジェクト。

InitializeCellValuePresenter イベント

フィールドのデータ値の変更追跡を有効にすると、DataPresenter コントロールは、CellValuePresenter オブジェクトをそのフィールドのセルにアタッチするときに InitializeCellValuePresenter イベントを発生させます。CellValuePresenter が新規またはリサイクルの CellValuePresenter オブジェクトである場合、InitializeCellValuePresenterEventArgs オブジェクトの IsNew プロパティを使用できます。

パフォーマンスへの影響

追跡が必要なフィールドでのみデータ値の変更を追跡するべきです。DataPresenter コントロールのすべてのフィールドでこの機能を有効にし、セルのデータ値の履歴にあまりにも多くの変更を保持すると、アプリケーションのパフォーマンスに悪影響を及ぼす場合があります。