Flex:无法扩展DataGridColumn

dha*_*0us 0 apache-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>
Run Code Online (Sandbox Code Playgroud)

ExtendedDataGridColumn.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:DataGridColumn xmlns="*" xmlns:mx="http://www.adobe.com/2006/mxml"> 
</mx:DataGridColumn>
Run Code Online (Sandbox Code Playgroud)

Ger*_*ger 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>
Run Code Online (Sandbox Code Playgroud)