             if (item)
             {
                 itemColumns = new ArrayList();
-                for (var property:String in item)
+                const classInfo:Object = ObjectUtil.getClassInfo(item);
+                if (classInfo)
                 {
-                    var column:GridColumn = new GridColumn();
-                    column.dataField = property;
-                    itemColumns.addItem(column);
-                } 
+                    for each (var property:QName in classInfo.properties)
+                    {
+                        var column:GridColumn = new GridColumn();
+                        column.dataField = property.localName;
+                        itemColumns.addItem(column);                        
+                    }
+                }
             }
             
             return itemColumns;

        
        private var _columns:IList = null; // list of GridColumns
        private var columnsChanged:Boolean = false;
        private var generatedColumns:Boolean = false;
        
        [Bindable("columnsChanged")]
        

            else
                gridDimensions.fixedRowHeight = value;
            
            invalidateSize();
            invalidateDisplayList();
            dispatchChangeEvent("rowHeightChanged");            
        }
        
