Класс

событие. PropertyEvent

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

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

Описание

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

  • PreGet

  • PostGet

  • PreSet

  • PostSet

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

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

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

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

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

tRUE

ConstructOnLoad

tRUE

HandleCompatible

tRUE

RestrictsSubclassing

tRUE

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

Свойства

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

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

Атрибуты:

GetAccess

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

SetAccess

частный

GetObservable

tRUE

SetObservable

tRUE

Типы данных: объект указателя

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

Атрибуты:

GetAccess

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

SetAccess

частный

GetObservable

tRUE

SetObservable

tRUE

Типы данных: meta. свойство

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

Атрибуты:

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

Была ли эта тема полезной?