exponenta event banner

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

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

  • 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

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

См. также

| |

Связанные темы