2010-10-01 51 views
0

我无法编译以下Flex应用程序。
我想要做的就是扩展DataGridColumn类。
我收到以下编译错误: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> 

回答

5

你必须使用<local:itemRenderer>,而不是<mx:itemRenderer>以来的itemRenderer是一个属性具有名称空间前缀local的ExtendedDataGridColumn。属性的名称空间前缀必须与组件的前缀相匹配。

所以,正确的代码是:

<?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> 
+0

+1良好的渔获.. :) – Amarghosh 2010-10-01 11:38:01

+0

救了我,太! – code90 2012-02-29 13:50:03