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

속성 이벤트의 이름으로, 다음 네 가지 이벤트 이름 중 하나로 지정됩니다.

특성:

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 속성은 PropOne에 대한 meta.property 객체를 포함합니다. meta.property Name 속성에 액세스하여 이벤트가 트리거된 속성의 이름을 가져옵니다. 콜백이 여러 개의 속성을 처리할 때는 속성 이름에 대해 switch 문을 사용합니다.

event.PropertyEvent 객체의 EventName 속성은 이벤트의 이름을 포함합니다. 콜백으로부터 여러 개의 속성 이벤트를 처리하려면 이벤트 이름에 대해 switch 문을 사용하십시오.

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에 개발됨