In literal xml declarations, the braces do not create a binding. They simply give access to the members of the parent scope.
To do what you want, use an e4x expression to find the menuitem node you need, then set the attributes as desired. Tracy ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of nhid Sent: Tuesday, April 01, 2008 2:00 PM To: [email protected] Subject: [flexcoders] Disable/enable menuBar menuItem Hello, My menubar is like the following: ---------------------------- In mxml file, myFile.mxml, I have: <mx:Application xmlns:mx=http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> creationComplete="initCollections();" > <mx:Script> <![CDATA[ import mx.collections.*; [Bindable] public var menuBarCollection:XMLListCollection; [Bindable] public var model:MyModelLocator = MyModelLocator.getInstance(); private var menubarXML:XMLList = <> <menuitem label="Menu1"> <menuitem label="MenuItem 1-A" data="1A" enabled={model.menuEnabledFlags[0]}/> <menuitem label="MenuItem 1-B" data="1B" enabled={model.menuEnabledFlags[1]}/> </menuitem> <menuitem label="Menu2"> <menuitem label="MenuItem 2-A" data="2A"/> <menuitem type="separator" /> <menuitem label="MenuItem 2-B" > <menuitem label="SubMenuItem 3-A" data="3A"/> <menuitem label="SubMenuItem 3-B" data="3B"/> </menuitem> </menuitem> </>; // Event handler for the MenuBar control's itemClick event. private function menuHandler(event:MenuEvent):void { Alert.show("Label: " + [EMAIL PROTECTED] + "\n" + "Data: " + [EMAIL PROTECTED], "Clicked menu item"); } // Event handler to initialize the MenuBar control. private function initCollections():void { menuBarCollection = new XMLListCollection(menubarXML); } private function changeMenu():void { menuEnabledFlags[0] = true; menuEnabledFlags[1] = false; } ]]> </mx:Script> <mx:MenuBar labelField="@label" itemClick="menuHandler(event);" dataProvider="{menuBarCollection}" /> <mx:Button label="Change Enabled/Disabled Menu" click="changeMenu()"/> </mx:Application> --------------- In MyModelLocator.as file, I have: public var menuEnabledFlags:Array = [false, true]; -------------------- Initially, when the application is loaded, "MenuItem 1-A" is disabled, and "MenuItem 1-B" is enabled as the flags are defined in MyModelLocator.as I want to dynamically change enable/disable flags for the item "MenuItem 1-A" and "MenuItem 1-B" in .as (Script) file. So I changed the value of menuEnabledFlags as such menuEnabledFlags[0] = true; menuEnabledFlags[1] = false; I expected "MenuItem 1-A" will be enabled and "MenuItem 1-B" will be disabled. However, the change didn't reflect on the menubar. How can I dynamically enable/disable "MenuItem 1-A" and "MenuItem 1-B"? Please advise Thanks!

