 
         super.dataProvider = value;
         invalidateProperties();
+    }
+    
+    //----------------------------------
+    //  labelField
+    //----------------------------------
+    
+    private var _labelField:String;
+    private var labelFieldOrFunctionChanged:Boolean; 
+    
+    /**
+     *  labelField
+     *
+     */
+    public function get labelField():String
+    {
+        return _labelField;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set labelField(value:String):void
+    {
+        if (value == _labelField)
+            return 
+            
+        _labelField = value;
+        labelFieldOrFunctionChanged = true;
+        invalidateProperties();
+    }
+    
+    //----------------------------------
+    //  labelFunction
+    //----------------------------------
+    
+    private var _labelFunction:Function; 
+    
+    /**
+     *  labelFunction
+     *
+     */
+    public function get labelFunction():Function
+    {
+        return _labelFunction;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set labelFunction(value:Function):void
+    {
+        if (value == _labelFunction)
+            return 
+            
+        _labelFunction = value;
+        labelFieldOrFunctionChanged = true;
+        invalidateProperties(); 
     }
     
     //----------------------------------

 *  @playerversion AIR 1.5
 *  @productversion Flex 4
 */
public class FxListBase extends FxDataContainer
{
    include "../../core/Version.as";


                dispatchEvent(e);
            }
        }
        
        if (labelFieldOrFunctionChanged)
        {
        	//Cycle through all instantiated renderers
        	for (var i:int = 0; i < dataGroup.numChildren; i++)
        	{
        		var renderer:ItemRenderer = dataGroup.getElementAt(i) as ItemRenderer; 
        		//Push the correct text into the renderer if it has
        		//a labelElement part. 
        		if (renderer && renderer.labelElement)
        		{
        			renderer.labelElement.text = 
        				LabelUtil.itemToLabel(renderer.data, labelField, labelFunction);
        		}
        	}
        	labelFieldOrFunctionChanged = false; 
        }
    }
    
    //--------------------------------------------------------------------------
