yup it should work...I did this & it worked fine :)
/***********************************************************************\
********
* Filter Manager
************************************************************************\
******/
package custom {
import flash.events.Event;
import mx.containers.Form;
import mx.containers.FormItem;
import mx.controls.Alert;
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.utils.ObjectUtil;
/***********************************************************************\
****
* Class definition for a class to manage the various search filters
************************************************************************\
***/
public class FilterManager extends Form {
[Bindable]
public var datagrid:DataGrid;
private var _test:String;
private var filterSettings:Array;
/***********************************************************************
* FilterManager (Constructor)
*
* Creates an instance of the filter manager class
***********************************************************************/
public function FilterManager():void
{
super();
datagrid = new DataGrid();
datagrid.columns = createDGCols();
this.initFilters();
}
[Bindable]
public function set test(value:String):void
{
_test = value;
trace(value);
}
public function get test():String
{
return _test;
}
/***********************************************************************
* initFilters
*
* Builds an array to manage the different filters that may be
set
***********************************************************************/
private function initFilters():void {
this.filterSettings = new Array();
for each (var col:* in this.datagrid.columns) {
var d:Object = new Object();
if (col['dataField'] != null) {
d.field = col['dataField'];
d.enabled = false;
d.filter = null;
this.filterSettings.push(d);
}
}
}
private function createDGCols():Array
{
/* DATAGRID Col SETUP */
var a:DataGridColumn = new DataGridColumn('Title');
a.dataField = 'FileName';
a.width = 80;
a.editable = true;
var b:DataGridColumn = new DataGridColumn('Types');
b.width = 130;
b.editable = false;
var c:DataGridColumn = new DataGridColumn('Icon');
c.width = 20;
c.editable = false;
var dgCols:Array = [a,b,c];
return dgCols;
}
/***********************************************************************
* component overrides
***********************************************************************/
override protected function createChildren():void {
super.createChildren();
for each (var item:Object in this.filterSettings) {
var f:FormItem = new FormItem();
f.label = item.field;
addChild(f);
}
Alert.show("createChilden()");
}
override protected function commitProperties():void {
super.commitProperties();
}
override protected function measure():void {
super.measure();
}
override protected function
updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth,unscaledHeight);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
xmlns:custom="custom.*">
<custom:FilterManager datagrid="{Application.application.dgResults}"
test="I'm using FilterManager" width="100%" height="100%"
id="filManager"/>
<mx:TextArea width="200" height="200" x="200" y="200"
text="{filManager.test}"/>
</mx:Application>
cheers
erick