 
         dispatchEvent(new Event("collectionChange"));
     }
+
+
+    //----------------------------------
+    //  enabledField
+    //----------------------------------
+
+    /**
+     *  @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;
+    }
+
+    /**
+     *  @private
+     */
+    public function set enabledField(value:String):void
+    {
+        _enabledField = value;
+
+        // If we have a data provider, update here to
+        // reflect new enabled field.
+        if (_dataProvider)
+            dataProvider = _dataProvider;
+
+        dispatchEvent(new Event("enabledFieldChanged"));
+    }
+
 
     //----------------------------------
     //  iconField

		
        if (_dataProvider)
        {
            // use weak reference
            _dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE,
                                              collectionChangeHandler);
        }

            if (item is String && labelFunction == null)
            {
                navItem = Button(createNavItem(String(item)));

                navItem.enabled = enabled;
            }
            else
            {
                var label:String = itemToLabel(item);
                // if labelField doesn't exist in item, label will be null;

                if (iconField != "")
                {
                    var iconValue:Object = null;

