Pregunta

Tengo un captador enlazable en un componente que me informa cuando un [escondido] temporizador está en marcha. También tengo un menú contextual que, si este temporizador está en marcha, debe desactivar uno de los elementos del menú. ¿Es posible crear un ChangeWatcher que vela por el negativa condición de una propiedad que puede vincularse / captador y cambia la propiedad enabled del elemento de menú?

Estos son los métodos básicos que estoy tratando de unir:

Clase A:

[Bindable]
public function get isPlaying():Boolean {
    return (_timer != null) ? _timer.running : false;
}

Clase 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");
}

En el código anterior, tengo el caso inverso: cuando isPlaying () es verdadera, el elemento de menú está activada; Quiero que sólo se puede activar cuando la condición es falsa.

Me podría crear un segundo captador (hay otros enlaces que se basan en el captador de corriente) para devolver la condición inversa, pero que los sonidos feo para mí:

[Bindable]
public function get isNotPlaying():Boolean {
    return !isPlaying;
}

¿Es esto posible, o hay otro enfoque que estoy completamente perdido?

¿Fue útil?

Solución

¿Podría utilizar unen Setter en utilidades vinculante, pero su enfoque parece válida la propiedad de lo contrario se unen es ciego a los tipos de propiedades que de mapeo por lo que no tiene parámetros condición negativa.

Otros consejos

I would extend ContextMenuItem and create a custom property on it that you can use to set the enabled or not of the underlying ContextMenuItem

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top