我知道很多人已经问过这类问题,但那篇文章并没有给我更多信息来了解 Flex Framework 中 ItemRenderer 和 ItenEditor 之间的实际区别。
据我所知,ItemRenderer 主要用于显示视觉元素,而 ItemEditor 主要用于编辑目的。
所以我尝试了以下示例来找出其中的区别:
对于 ItemRenderer,我使用了以下代码:
<mx:DataGrid dataProvider="{initDG}">
<mx:columns>
<mx:DataGridColumn headerText="Artist" dataField="Artist"/>
<mx:DataGridColumn headerText="Album" dataField="Album"/>
<mx:DataGridColumn headerText="Price" dataField="Price">
<mx:itemRenderer>
<fx:Component>
<mx:TextInput restrict="0-9" maxChars="10" />
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Cover" dataField="Cover"/>
</mx:columns>
</mx:DataGrid>
我得到的结果如下:
价格字段显示为可编辑的位置。
我再次使用 ItemEditor 尝试了相同的代码,如下所示:
<mx:DataGrid dataProvider="{initDG}">
<mx:columns>
<mx:DataGridColumn headerText="Artist" dataField="Artist"/>
<mx:DataGridColumn headerText="Album" dataField="Album"/>
<mx:DataGridColumn headerText="Price" dataField="Price">
<mx:itemEditor>
<fx:Component>
<mx:TextInput restrict="0-9" maxChars="10" />
</fx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Cover" dataField="Cover"/>
</mx:columns>
</mx:DataGrid>
我得到的结果如下:
但是这里的价格字段是不可编辑的。
所以当我对这些控件不熟悉时,我很困惑为什么会这样。在使用 ItemEditor 作为该字段不可编辑的原因之后。
如果有人知道这背后的原因是什么,请帮助我了解有关这两个控件的更多详细信息。