Main Content

event.PropertyEvent クラス

パッケージ: event

プロパティ イベントのデータ

説明

event.PropertyEvent クラスは、以下の事前定義されたプロパティ イベントのリスナーに渡されるイベント データ オブジェクトを定義します。

  • PreGet

  • PostGet

  • PreSet

  • PostSet

事前定義されたプロパティ イベントによりリスナーが有効になり、プロパティ値の変更に対して応答します。詳細については、プロパティ値変更のリスニングを参照してください。

event.PropertyEvent クラスは、event.EventData のシールされたサブクラスです (すなわち、event.PropertyEvent をサブクラス化することはできません)。クラス コンストラクターはプライベートです。MATLAB® が、プロパティ イベントのリスナーに渡す event.PropertyEvent オブジェクトを作成します。

event.PropertyEvent クラスは handle クラスです。

クラスの属性

Sealed
true
ConstructOnLoad
true
HandleCompatible
true
RestrictsSubclassing
true

クラス属性の詳細については、クラスの属性を参照してください。

プロパティ

すべて展開する

プロパティが影響を受けるオブジェクト。オブジェクト ハンドルとして指定します。

属性:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

データ型: handle object

イベントをトリガーするプロパティ。そのプロパティの meta.property オブジェクトとして指定します。

属性:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

データ型: meta.property

プロパティ イベント名。4 つのイベント名のいずれかとして指定します。

属性:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

データ型: char

プロパティ イベントのリスニング

プロパティ イベントの観察を有効にする PropOne GetObservable および SetObservable 属性を使用して、propEventClass クラスを定義します。クラス コンストラクターは、これらのイベントのリスナーを追加します。

classdef propEventClass < handle
   % Class to observe property events
   properties (GetObservable,SetObservable)
      PropOne string = "default"
   end
   methods
      function obj = propEventClass
         addlistener(obj,'PropOne','PreGet',@propEventHandler);
         addlistener(obj,'PropOne','PostSet',@propEventHandler);
      end
   end
end

関数 propEventHandler は、PreGet イベントおよび PostSet イベントのコールバックとして機能します。

event.PropertyEvent オブジェクトの Source プロパティには、PropOnemeta.property オブジェクトが含まれます。meta.propertyName プロパティにアクセスし、イベントのトリガーされるプロパティの名前を取得します。コールバックが複数のプロパティを扱う場合は、プロパティ名によって切り替えます。

event.PropertyEvent オブジェクトの EventName プロパティには、イベント名が含まれます。コールバックからの複数のプロパティ イベントを扱うには、イベント名によって切り替えます。

function propEventHandler(~,eventData)
   switch eventData.Source.Name % Get property name
      case 'Prop1'
         switch eventData.EventName % Get the event name
            case 'PreGet'
               fprintf('%s\n','***PreGet triggered***')
            case 'PostSet'
               fprintf('%s\n','***PostSet triggered***')
               disp(eventData.AffectedObject.(eventData.Source.Name));
         end
   end
end

PropOne プロパティ値を参照すると、propEventHandler から PreGet イベントへの応答が起こります。

obj = propEventClass;
obj.PropOne
***PreGet triggered***

ans = 

    "default"

PropOne プロパティに値を割り当てると、propEventHandler から PostSet イベントへの応答が起こります。

コールバックは PostSet イベントの後に新しい値を表示するためにプロパティ値を取得するため、PreGet イベントがトリガーされます。また、代入ステートメントはセミコロンにより終了していないため、MATLAB はプロパティ値を取得してコマンド ウィンドウにオブジェクトを表示します。これにより、PreGet イベントが再度トリガーされます。

obj.PropOne = "New string"
***PostSet triggered***
***PreGet triggered***
New string

obj = 

***PreGet triggered***
  propEventClass with properties:

    PropOne: "New string"

バージョン履歴

R2008a で導入