событие. Класс PropertyEvent

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

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

Описание

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

  • PreGet

  • PostGet

  • PreSet

  • PostSet

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

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

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

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

Изолированный

tRUE

ConstructOnLoad

tRUE

HandleCompatible

tRUE

RestrictsSubclassing

tRUE

Для получения информации об атрибутах класса см. Атрибуты класса.

Свойства

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

Объект, свойство которого затронуто, задал как указатель на объект.

Атрибуты:

GetAccess

общественность

SetAccess

частный

GetObservable

tRUE

SetObservable

tRUE

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

Свойство, которое инициировало событие, заданное как объект meta.property для свойства.

Атрибуты:

GetAccess

общественность

SetAccess

частный

GetObservable

tRUE

SetObservable

tRUE

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

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

Атрибуты:

GetAccess

общественность

SetAccess

частный

GetObservable

tRUE

SetObservable

tRUE

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

Примеры

Прислушайтесь к событию свойства

Задайте класс propEventClass с GetObservable PropOne и атрибутами 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.

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

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

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