Наблюдение изменений в значениях свойств

Этот пример показывает, как прислушаться к изменениям в значении свойства. Этот пример использование:

  • Событие 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

Смотрите также

| |

Похожие темы

Была ли эта тема полезной?