Этот пример показывает, как прислушаться к изменениям в значении свойства. Этот пример использование:
Событие PostSet
предопределено MATLAB®
Атрибут свойства SetObservable
, чтобы позволить инициировать событие свойства PostSet
.
Метод класса Handle addlistener
, чтобы создать прослушиватель
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
данные о событиях
объект 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