     }
     
     //----------------------------------
+    //  typicalItem
+    //----------------------------------
+
+    /**
+     *  @copy mx.components.DataGroup#typicalItem
+     */
+    public function get typicalItem():Object
+    {
+        return (dataGroup) 
+            ? dataGroup.typicalItem 
+            : dataGroupProperties.typicalItem;
+    }
+
+    /**
+     *  @private
+     */
+    public function set typicalItem(value:Object):void
+    {
+        if (dataGroup)
+        {
+            dataGroup.typicalItem = value;
+            dataGroupProperties = BitFlagUtil.update(dataGroupProperties as uint, 
+                                                     TYPICAL_ITEM_PROPERTY_FLAG, true);
+        }
+        else
+            dataGroupProperties.typicalItem = value;
+    }
+    
+    //----------------------------------
     //  verticalScrollPosition
     //----------------------------------
     

        {
            dataGroup.removeEventListener(
                PropertyChangeEvent.PROPERTY_CHANGE, dataGroup_propertyChangeHandler);
            
            // copy proxied values from dataGroup (if explicitely set) to dataGroupProperties
            

    /**
     *  @private
     */
    private static const AUTO_LAYOUT_PROPERTY_FLAG:uint = 1 << 4;
    
    /**
     *  @private
     */
    private static const DATA_PROVIDER_PROPERTY_FLAG:uint = 1 << 5;
    
    /**
     *  @private
     */
    private static const ITEM_RENDERER_PROPERTY_FLAG:uint = 1 << 6;
    
    /**
     *  @private
     */
    private static const ITEM_RENDERER_FUNCTION_PROPERTY_FLAG:uint = 1 << 7;
    
    /**
     *  @private
     */
    private static const TYPICAL_ITEM_PROPERTY_FLAG:uint = 1 << 8;

    //--------------------------------------------------------------------------
    //
