Как сделать скин осведомленным об изменении значения свойства hostComponent?

Пишу компонент и его скин. Скин имеет состояние "selected", при котором объекты отображаются с соответствующим свечением. Так получилось, что состояние выбрано удерживается в свойстве в hostComponent, которое устанавливается/сбрасывается извне (а не посредством прямого взаимодействия пользователя со скином).

Я попытался сделать это свойство boolean для hostComponent значением SkinPart, а при инициализации скина установить для этого свойства значение ChangeWatcher, которое вызовет изменение состояния. Нет сигары. :(

Как сделать так, чтобы состояние скина менялось через hostComponent?


person Dan    schedule 21.10.2011    source источник


Ответы (1)


What's the way to make the skin's state change through the hostComponent?

Вызовите invalidateSkinState() в свойстве вашего hostComponent.

Это, в свою очередь, заставит commitProperties перезапуститься во время следующего события рендеринга, что, в свою очередь, заставит getCurrentSkinState() перезапуститься, когда запустится commitProperties.

Убедитесь, что ваш hostComponent реализует getCurrentSkinState() и возвращает строковое значение, представляющее состояние, в которое вы хотите перейти.

person JeffryHouser    schedule 21.10.2011