event.PropertyEvent class

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

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

Описание

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

  • PreGet

  • PostGet

  • PreSet

  • PostSet

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

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

The 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

The propEventHandler функция служит коллбэку для PreGet и PostSet события.

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

The 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