             {
                 super.collectionChangeHandler(event);
                 dataProviderChanged = true;
+                invalidateProperties();
                 invalidateSize();
                 UIComponentGlobals.layoutManager.validateClient(this);
                 setActualSize(getExplicitOrMeasuredWidth(), getExplicitOrMeasuredHeight());
             }
             else if (ce.kind == CollectionEventKind.REFRESH)
             {
+                dataProviderChanged = true;
+                invalidateProperties();
                 invalidateSize();
+            }
+            else if (ce.kind == CollectionEventKind.RESET)
+            {
+                dataProviderChanged = true;
                 invalidateProperties();
-            }
-            else if (ce.kind == CollectionEventKind.RESET)
-            {
                 invalidateSize();
-                invalidateProperties();
             }
         }
         itemsSizeChanged = true;

        {
            _rootModel = new ArrayCollection();
        }
        //add listeners as weak references
        _rootModel.addEventListener(CollectionEvent.COLLECTION_CHANGE,
                                    collectionChangeHandler, false, 0, true);
        //flag for processing in commitProps
        dataProviderChanged = true;
        invalidateProperties();

     */
    mx_internal var _rootModel:ICollectionView;

	/**
     *  @private
     *  Storage variable for dataProvider passed to parent
     */
    mx_internal var _listDataProvider:ICollectionView;

    //--------------------------------------------------------------------------
    //
    //  Properties
