exponenta event banner

event.PropertyEvent класс

Пакет: событие

Данные для событий свойств

Описание

event.PropertyEvent класс определяет объекты данных событий, переданные прослушивателям этих предопределенных событий свойств:

  • PreGet

  • PostGet

  • PreSet

  • PostSet

Предопределенные события свойств позволяют прослушивателям реагировать на изменения значений свойств. Дополнительные сведения см. в разделе Прослушивание изменений значений свойств.

event.PropertyEvent класс является запечатанным подклассом event.EventData (то есть подкласс нельзя event.PropertyEvent). Конструктор класса является частным. MATLAB ® создает event.PropertyEvent объект для передачи прослушивателям событий свойств.

event.PropertyEvent класс является handle класс.

Атрибуты класса

Sealed
true
ConstructOnLoad
true
HandleCompatible
true
RestrictsSubclassing
true

Сведения об атрибутах класса см. в разделе Атрибуты класса.

Свойства

развернуть все

Объект, свойство которого затронуто, указанный как дескриптор объекта.

Атрибуты:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

Типы данных: handle object

Свойство, запускающее событие, указанное как meta.property объект для свойства.

Атрибуты:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

Типы данных: meta.property

Имя события свойства, указанное как одно из четырех имен события.

Атрибуты:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

Типы данных: char

Примеры

Прослушивание события свойства

Определите propEventClass класс с PropOne GetObservable и SetObservable атрибуты, позволяющие наблюдать за событиями свойства. Конструктор класса добавляет прослушиватели для этих событий.

classdef propEventClass < handle
   % Class to observe property events
   properties (GetObservable,SetObservable)
      PropOne string = "default"
   end
   methods
      function obj = propEventClass
         addlistener(obj,'PropOne','PreGet',@propEventHandler);
         addlistener(obj,'PropOne','PostSet',@propEventHandler);
      end
   end
end

propEventHandler функция служит в качестве обратного вызова для PreGet и PostSet события.

event.PropertyEvent объект Source содержит свойство meta.property объект для PropOne. Доступ к meta.property Name для получения имени свойства, для которого инициируется событие. Включите имя свойства, когда обратный вызов обрабатывает несколько свойств.

event.PropertyEvent объект EventName содержит имя события. Чтобы обработать несколько событий свойств из обратного вызова, включите имя события.

function propEventHandler(~,eventData)
   switch eventData.Source.Name % Get property name
      case 'Prop1'
         switch eventData.EventName % Get the event name
            case 'PreGet'
               fprintf('%s\n','***PreGet triggered***')
            case 'PostSet'
               fprintf('%s\n','***PostSet triggered***')
               disp(eventData.AffectedObject.(eventData.Source.Name));
         end
   end
end

Ссылка на PropOne значение свойства приводит к ответу от propEventHandler в PreGet событие.

obj = propEventClass;
obj.PropOne
***PreGet triggered***

ans = 

    "default"

Назначение для PropOne свойство приводит к ответу от propEventHandler в PostSet событие.

Поскольку обратный вызов получает значение свойства для отображения нового значения после PostSet событие, PreGet событие инициируется. Кроме того, поскольку оператор назначения не завершается точкой с запятой, MATLAB получает значение свойства для отображения объекта в окне команды, которое запускает PreGet снова событие.

obj.PropOne = "New string"
***PostSet triggered***
***PreGet triggered***
New string

obj = 

***PreGet triggered***
  propEventClass with properties:

    PropOne: "New string"
Представлен в R2008a