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

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

  • 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 передает два аргумента при вызывании этой функции:

  • metaPropmeta.property объект для ObservedProp

  • eventDataevent.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

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

| |

Похожие темы