Flex:无法扩展DataGridColumn

时间:2010-10-01 10:35:02

标签: flex datagrid

我无法编译以下Flex应用程序 我要做的就是扩展DataGridColumn类 我得到以下编译错误:

无法解析为组件实施。
    DataGridColumnTest / src DataGridColumnTest.mxml第6行

DataGridColumnTest.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local='*'>
    <mx:DataGrid x="191" y="32">
        <mx:columns>
            <local:ExtendedDataGridColumn headerText="Column 1" dataField="col1">
                 <mx:itemRenderer>
                    <mx:Component>
                        <mx:Button label="test"/>
                    </mx:Component>
                </mx:itemRenderer>
           </local:ExtendedDataGridColumn>
        </mx:columns>
    </mx:DataGrid>
</mx:Application>

ExtendedDataGridColumn.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:DataGridColumn xmlns="*" xmlns:mx="http://www.adobe.com/2006/mxml"> 
</mx:DataGridColumn>

1 个答案:

答案 0 :(得分:5)

您必须使用<local:itemRenderer>而不是<mx:itemRenderer>,因为itemRenderer是ExtendedDataGridColumn的属性,其名称空间前缀为local。属性的名称空间前缀必须与组件的前缀匹配。

所以,正确的代码是:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local='*'>
    <mx:DataGrid x="191" y="32">
        <mx:columns>
            <local:ExtendedDataGridColumn headerText="Column 1" dataField="col1">
                 <local:itemRenderer>
                    <mx:Component>
                        <mx:Button label="test"/>
                    </mx:Component>
                </local:itemRenderer>
           </local:ExtendedDataGridColumn>
        </mx:columns>
    </mx:DataGrid>
</mx:Application>