Apache flex 如何动态覆盖datagrid组件的列项呈现器
我有一个名为viewBase的视图组件,在其中我定义了一个高级datagrid,其中datagrid列的项目呈现器很少。现在我需要使用相同的视图viewBase组件,但不需要使用任何项目渲染器Apache flex 如何动态覆盖datagrid组件的列项呈现器,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我有一个名为viewBase的视图组件,在其中我定义了一个高级datagrid,其中datagrid列的项目呈现器很少。现在我需要使用相同的视图viewBase组件,但不需要使用任何项目渲染器 有人能告诉我如何覆盖视图组件中声明的ItemRenders吗?如果您有一个带有AdvancedDataGrid的组件ViewBase,其中一个渲染器需要动态,您可以执行以下示例中的smth(threatLevel的渲染器是动态的): mx:Script> import mx.collec
有人能告诉我如何覆盖视图组件中声明的ItemRenders吗?如果您有一个带有AdvancedDataGrid的组件ViewBase,其中一个渲染器需要动态,您可以执行以下示例中的smth(threatLevel的渲染器是动态的):
mx:Script>
import mx.collections.ArrayCollection;
import mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer;
[Bindable]
public var monitoringArrayCollection : ArrayCollection;
[Bindable]
public var threatRendererClass : Class = AdvancedDataGridItemRenderer;
<mx:AdvancedDataGrid dataProvider="{monitoringArrayCollection}">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="firstName" />
<mx:AdvancedDataGridColumn dataField="lastName" />
<mx:AdvancedDataGridColumn dataField="threatLevel" itemRenderer="{new ClassFactory(threatRendererClass)}" />
</mx:columns>
</mx:AdvancedDataGrid>
/mx:Script>
import mx.collections.ArrayCollection;
import mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer;
[Bindable]
public var monitoringArrayCollection : ArrayCollection;
[Bindable]
public var threatRendererClass : Class = AdvancedDataGridItemRenderer;
<mx:AdvancedDataGrid dataProvider="{monitoringArrayCollection}">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="firstName" />
<mx:AdvancedDataGridColumn dataField="lastName" />
<mx:AdvancedDataGridColumn dataField="threatLevel" itemRenderer="{new ClassFactory(threatRendererClass)}" />
</mx:columns>
</mx:AdvancedDataGrid>
如果您有一个带有AdvancedDataGrid的组件ViewBase,其中一个渲染器需要进行动态渲染,您可以执行以下示例中的smth(threatLevel的渲染器是动态的):
mx:Script>
import mx.collections.ArrayCollection;
import mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer;
[Bindable]
public var monitoringArrayCollection : ArrayCollection;
[Bindable]
public var threatRendererClass : Class = AdvancedDataGridItemRenderer;
<mx:AdvancedDataGrid dataProvider="{monitoringArrayCollection}">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="firstName" />
<mx:AdvancedDataGridColumn dataField="lastName" />
<mx:AdvancedDataGridColumn dataField="threatLevel" itemRenderer="{new ClassFactory(threatRendererClass)}" />
</mx:columns>
</mx:AdvancedDataGrid>
/mx:Script>
import mx.collections.ArrayCollection;
import mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer;
[Bindable]
public var monitoringArrayCollection : ArrayCollection;
[Bindable]
public var threatRendererClass : Class = AdvancedDataGridItemRenderer;
<mx:AdvancedDataGrid dataProvider="{monitoringArrayCollection}">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="firstName" />
<mx:AdvancedDataGridColumn dataField="lastName" />
<mx:AdvancedDataGridColumn dataField="threatLevel" itemRenderer="{new ClassFactory(threatRendererClass)}" />
</mx:columns>
</mx:AdvancedDataGrid>
我们可以看一下代码吗?我不明白你在问什么。代码可以帮助我们理解。itemRenderer是DataGrid列上的一个属性,因此您可以重写它以执行其他操作。但是,itemRenderer也可以引用用于创建DataGrid列的组件,在这种情况下,您不会覆盖它,但可以扩展它。我们可以看看代码吗?我不明白您在问什么。代码可以帮助我们理解。itemRenderer是DataGrid列上的一个属性,因此您可以重写它以执行其他操作。但是,itemRenderer也可以引用用于创建DataGrid列的组件,在这种情况下,您不会覆盖它,但可以扩展它。