DateField - dynamically changing dayNames & monthNames

Hi all.
I have been working with Flex and ActionScript for a few years now, but am just now getting into switching locales dynamically in one of my applications. I have set up locale bundles and have everything working well except for one thing I can’t seem to get to change…the internal labels and date formatting on a DateField component.

The DateField component is defined statically in MXML, but I am trying to change the dayNames, monthNames, and dateFormat attributes dynamically when a user changes locale, and it doesn’t seem to work. I have bound variables set up in the MXML that I am trying to change for all 3 of those attribute values, but they don’t seem to change when I change the variable values. I’ve tried making invalidateDisplayList() and invalidateProperties() calls after changing the values, but that doesn’t seem to matter. I even added a call to “initialize()” after the 2 invalidate calls thinking maybe that needed to be called, but nothing seems to make a difference in getting the labels updated within the component.

Any ideas what I could be doing wrong? I’ve verified that the newDaysArray and newMonths array are getting set up properly from the bundle that they are being read from in the actionscript below.

I should add that I’ve also tried editing the appropriate array variables in the SharedResources.properties file within the appropriate locales’ framework_rb.swc library in my Flex sdk, and that hasn’t seemed to do anything either.

Here’s code snippets:

MXML:

<mx:DateField id="dayChooser" formatString="{formatString}" dayNames="{daysArray}" monthNames="{monthsArray}" 	          change="setDateOfInterest()" paddingLeft="0" paddingRight="0"/>

ActionScript:

var newDaysArray:Array = 
[ResourceManager.getInstance().getString("dashlocale", "day.character.Sunday"),  
ResourceManager.getInstance().getString("dashlocale", "day.character.Monday"),  
ResourceManager.getInstance().getString("dashlocale", "day.character.Tuesday"),  
ResourceManager.getInstance().getString("dashlocale", "day.character.Wedday"),  
ResourceManager.getInstance().getString("dashlocale", "day.character.Thursday"),  
ResourceManager.getInstance().getString("dashlocale", "day.character.Friday"),  
ResourceManager.getInstance().getString("dashlocale", "day.character.Saturday")]; 

var newMonthsArray:Array =  
[ResourceManager.getInstance().getString("dashlocale", "month.fullname.January"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.February"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.March"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.April"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.May"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.June"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.July"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.August"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.September"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.October"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.November"),  
ResourceManager.getInstance().getString("dashlocale", "month.fullname.December")];  

daysArray = newDaysArray; 
monthsArray = newMonthsArray; 

dayChooser.formatString = ResourceManager.getInstance().getString("dashlocale", "dashboard.locale.dateFormatYYYY");

// I've tried with and without these calls and variations of just some of them: 
dayChooser.invalidateDisplayList(); 
dayChooser.invalidateProperties(); 
dayChooser.initialize();