event.PropertyEvent class

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

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

Описание

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