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

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

  • PostSet событие, предопределенное MATLAB®

  • SetObservable атрибут свойства, чтобы включить запуск свойства PostSet событие.

  • 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

The PropLis класс использует обычный метод (attachListener), чтобы добавить прослушиватель для ObservedProp свойство. Если на PropLis класс задает конструктор, конструктор может содержать вызов на addlistener.

Прослушиватель коллбэка является статическим методом (propChange). MATLAB передает два аргумента при вызове этой функции:

  • metaProp - a 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

См. также

| |

Похожие темы