Flex ChangeWatcher связывает с отрицательным условием
-
08-10-2019 - |
Вопрос
У меня есть обязательная добыча в компоненте, который сообщает мне, когда работает [скрытый] таймер. У меня также есть контекстное меню, которое, если этот таймер запущен, должен отключить одно из пунктов меню. Можно ли создать изменение, который наблюдает за отрицательный состояние обязательной недвижимости / добыча и изменения enabled
Свойство пункта меню?
Вот основные методы, которые я пытаюсь связать вместе:
Класс A:
[Bindable]
public function get isPlaying():Boolean {
return (_timer != null) ? _timer.running : false;
}
Класс B:
private var _playingWatcher:ChangeWatcher;
public function createContextMenu():void {
//...blah blah, creating context menu
var newItem:ContextMenuItem = new ContextMenuItem();
_playingWatcher = BindingUtils.bindProperty(newItem, "enabled", _classA, "isPlaying");
}
В указанном выше коде у меня есть обратный случай: когда ISPlaying () является True, пункт меню включен; Я хочу, чтобы это было включено только тогда, когда состояние ложно.
Я мог бы создать вторую добычу (есть и другие привязки, которые полагаются на текущий добытель), чтобы вернуть обратное условие, но это звучит уродливым для меня:
[Bindable]
public function get isNotPlaying():Boolean {
return !isPlaying;
}
Это возможно, или есть еще один подход, я полностью пропавшись?
Решение
Может ли использовать установку BINGTER на привязке Utils, но ваш подход кажется действительным, в противном случае свойство BIND слепого к типам свойств, которые он отображает, поэтому у него нет параметра отрицательного состояния.
Другие советы
Я бы расширил ContextMenuitem и создаю настраиваемую недвижимость на этом, что вы можете использовать для установки включенного или не базового контекстно-метеологии