と呼ばれるコンポーネントに文書化されていない ( @private
ASDOC でマークされている) プロパティがあるようです。コンポーネントは、そのクラス階層のある時点で拡張されます。NavBar
enbaledField
TabBar
NavBar
Apache Flex github リポジトリのコードを次に示します (ASDOC コメントを読むことができるように含まれています)。
/**
* @private
* Storage for the enabled property.
*/
private var _enabledField:String = "enabled";
[Bindable("enabledFieldChanged")]
[Inspectable(category="Data")]
/**
* Name of the the field in the <code>dataProvider</code> object
* to use as the enabled label.
*
* @default "enabled"
*
* @langversion 3.0
* @playerversion Flash 11.1
* @playerversion AIR 3.4
* @productversion Flex 4.10
*/
public function get enabledField():String
{
return _enabledField;
}
したがって、理論的には (私は Flex もインストールしていません)、要素にdataProvider
というプロパティがあるenabled
場合、TabBar
.
または、 dataProvider 要素の他のフィールドを使用して、ボタンを有効/無効にする必要があることを示す場合は、enableField
プロパティに新しい値を設定できます。
ASDOC によると、これは最初に Flex 4.10 に含まれていたようです。しかし、これは古い MX コンポーネントであるため、これは奇妙だと思います。ただし、このプロパティは実際には Flex 4.10 で追加された可能性があります。
これが Flex 4.10 だけにあるというのが本当なら、@zeus が提案したように、それぞれのコードをコピーして自分で実装することができます。特に、魔法が発生createNavChildren()
するクラスのプライベート メソッドに注意してください。NavBar
//Check for enabled field and assign it to the individual button if it exists.
if (_enabledField != "" && item.hasOwnProperty(_enabledField) == true)
{
navItem.enabled = Boolean(item[_enabledField]);
}
else
{
navItem.enabled = enabled;
}
NavBar
上記のコードをすべて含む github リポジトリのクラスへのリンクを次に示します。