В этом примере показано, как прислушаться к изменениям в значении свойства. Этот пример использует:
PostSet
событие предопределено MATLAB®
SetObservable
атрибут свойства, чтобы позволить инициировать свойство PostSet
событие.
addlistener
метод класса Handle, чтобы создать прослушиватель
classdef PropLis < handle % Define a property that is SetObservable properties (SetObservable) ObservedProp = 1 end methods function attachListener(obj) %Attach a listener to a PropListener object addlistener(obj,'ObservedProp','PostSet',@PropLis.propChange); end end methods (Static) function propChange(metaProp,eventData) % Callback for PostSet event % Inputs: meta.property object, event.PropertyEvent h = eventData.AffectedObject; propName = metaProp.Name; disp(['The ',propName,' property has changed.']) disp(['The new value is: ',num2str(h.ObservedProp)]) disp(['Its default value is: ',num2str(metaProp.DefaultValue)]) end end end
PropLis
класс использует обычный метод (attachListener
) добавить прослушиватель для ObservedProp
свойство. Если PropLis
класс задает конструктора, конструктор может содержать вызов addlistener
.
Коллбэк прослушивателя является статическим методом (propChange
). MATLAB передает два аргумента при вызывании этой функции:
metaProp
— meta.property
объект для ObservedProp
eventData
— event.PropertyEvent
объект содержит привязанные к конкретному событию данные.
Эти аргументы предоставляют информацию о свойстве и событии.
Используйте PropLis
класс путем создания экземпляра и вызова его attachListener
метод:
plObj = PropLis; plObj.ObservedProp
ans = 1
plObj.attachListener plObj.ObservedProp = 2;
The ObservedProp property has changed. The new value is: 2 Its default value is: 1
event.proplistener
| handle.addlistener
| handle.listener