Define two states in your application, and either:

1. Define two mx:Trees, one with each item renderer, with includeIn for
each Tree set to each state, and just switch between states :)
2. Or just define one Tree, with itemRenderer.state1=itemRendererClass1,
and itemRenderer.state2=itemRendererClass2

I personally would go for option 1, since I have also had troubles
switching itemRenderers on execution time. Overhead is not a problem, since
the includeIn attrib is more or less the way to tell Flex "treat all this
as a comment unless you are in this state"  :)


On Tue, Apr 1, 2014 at 3:15 PM, Patil, Virat <[email protected]>wrote:

> Hello
>
> I have following code trying to switch between renderers at runtime. And
> Reassign data . I have tried using CallLater method to achieve it  Can
> somebody suggest a solution.
>
> private function switchRenders():void{
>                         if(multiSelect.selected)
>                               listTree.itemRenderer = new
> ClassFactory(renderers.CheckBoxTreeItemRenderer);
>                         else
>                               listTree.itemRenderer = new
> ClassFactory(mx.controls.treeClasses.TreeItemRenderer);
>
> }
> Getting Following error:
>
>
> TypeError: Error #1010: A term is undefined and has no properties.
>                 at mx.controls::List/createItemRenderer()
>                 at mx.controls::List/
> http://www.adobe.com/2006/flex/mx/internal::getMeasuringRenderer()
>                 at mx.controls::List/commitProperties()
>                 at mx.controls::Tree/commitProperties()
>                 at mx.core::UIComponent/validateProperties()
>                 at mx.managers::LayoutManager/validateProperties()
>                 at mx.managers::LayoutManager/doPhasedInstantiation()
>                 at
> mx.managers::LayoutManager/doPhasedInstantiationCallback()
> This message contains information that may be privileged or confidential
> and is the property of the Capgemini Group. It is intended only for the
> person to whom it is addressed. If you are not the intended recipient, you
> are not authorized to read, print, retain, copy, disseminate, distribute,
> or use this message or any part thereof. If you receive this message in
> error, please notify the sender immediately and delete all copies of this
> message.
>

Reply via email to