Search code examples
apache-flexactionscript-3flex3mxmlmenubar

Programmatically change Flex MenuBar item toggled property


I have this MenuBar control in Flex 3. How can I programmatically change the toggled property to false?

<mx:MenuBar labelField="@label" itemClick="itemClickHandler(event);" left="0" right="0" top="0" id="menuBar">
    <mx:XMLList>
        <menuitem label="File" data="top">
            <menuitem label="New" data="file-new"/>
        </menuitem>
        <menuitem label="View" >
            <menuitem label="Grid" type="check" toggled="true" data="view-grid"/>
        </menuitem>   
    </mx:XMLList>
</mx:MenuBar>

Solution

  • Easy enough, just need to bind the toggle property to a property within the class like so:

    <fx:Script>
            <![CDATA[
                [Bindable] private var _toggled:Boolean = true;
            ]]>
        </fx:Script>
        <mx:MenuBar labelField="@label" itemClick="itemClickHandler(event);" left="0" right="0" top="0" id="menuBar">
            <mx:XMLList>
                <menuitem label="File" data="top">
                    <menuitem label="New" data="file-new"/>
                </menuitem>
                <menuitem label="View" >
                    <menuitem label="Grid" type="check" toggled="{this._toggled}" data="view-grid"/>
                </menuitem>   
            </mx:XMLList>
        </mx:MenuBar>
    

    Now when you change the _toggled property, it will reflect in the menubar.