          *  control, the control dispatches the <code>selectionChange</code> 
          *  event. When the user changes the selection programmatically, the 
          *  control dispatches the <code>valueCommit</code> event.</p>
+         * 
+         *  <p>Attempts to set this property are deferred until commitProperties()
+         *  runs, and the dataProvider property has been set.  This property is not
+         *  intended for programatic selection updates, it can be used to initialize the
+         *  selection in MXML markup.  To programatically set the "selected item"
+         *  use <code>dataProvider.getItemIndex()</code> to compute the item's location
+         *  and <code>setSelectedIndex()</code> to change the selection.</p>
+         *  
          *  @default undefined
          * 
          *  @return Vector of <code>dataProvider</code> items.

    {
        include "../core/Version.as";
        
        public var backgroundGroup:Group;
        public var selectionGroup:Group;    
        public var itemRendererGroup:Group;
        public var overlayGroup:Group;
        
        private var inUpdateDisplayList:Boolean = false;
        
        public function Grid()
        {

         *  event. When the user changes the selection programmatically, the 
         *  control dispatches the <code>valueCommit</code> event.</p>
         * 
         *  <p>Attempts to set this property are deferred until commitProperties()
         *  runs, and the dataProvider property has been set.  This property is not
         *  intended for programatic selection updates, it can be used to initialize the
         *  selection in MXML markup.  The setSelectedCell(), addSelectedCell(),
         *  and selectCellRegion() methods should be used for programatic selection 
         *  updates, for example when writing a keyboard or mouse event handler. </p>  
         * 
         *  @default []
         * 
         *  @return Vector of CellPosition objects where each element represents
