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 |
클래스 특성에 대한 자세한 내용은 클래스 특성 항목을 참조하십시오.
속성
예제
속성 이벤트 수신 대기하기
속성 이벤트를 관찰할 수 있도록 해 주는 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
에 대한 matlab.metadata.Property
객체를 포함합니다. matlab.metadata.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에 개발됨