     private var _labelField:String;
     
     /**
-     *  labelField
-     *
+     *  The name of the field in the data provider items to display 
+     *  as the label. 
+     *
+     *  @default null 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get labelField():String
     {

        if (index == selectedIndex)
        {
            if (requiresSelection && dataProvider && dataProvider.length > 0)
            {    	
            	if (index == 0)
            	{
            		//We can't just set selectedIndex to 0 directly
            		//since the previous value was 0 and the new value is
            		//0, so the setter will return early.  
            		_proposedSelectedIndex = 0;
            		invalidateProperties();
            	}
            	else 
            		selectedIndex = 0;
            }
            else
            	adjustSelectedIndex(-1);
        }
        else if (index < selectedIndex)
        {

    private var requiresSelectionChanged:Boolean = false;

    /**
     *  Specifies whether an item must always be selected in the dataProvider.
     *  If the value is <code>true</code>, the <code>selectedIndex</code> property 
     *  is always set to a value between 0 and (<code>dataProvider.length</code> - 1), 
     *  or -1 if there are no items.
