问题
I'm working in a multi-language application using ResourceBundle in Flex 3. I'm displaying data in a DataGrid and defined DataGridColumn headerText like this
headerText="{localizedHeaderText('LABEL_USER_NAME')}
this function returns the localized label for the username, but when I dynamcally select another language evertying gets refreshed but the headerText labels?
Any thoughts?
Thanks
回答1:
Unless you make the localizedHeaderText method bindable, the binding will never be re-evaluated since it does not know about the change event of the resourceManager.
Assuming you are in a UIComponent subclass, you'll need to do the following:
- override resourcesChanged and dispatch a custom event
- add [Bindable(event="customEvent")] above the method
Sample code:
override protected function resourcesChanged():void {
super.resourcesChanged();
dispatchEvent(new Event("localeChange"));
}
and
[Bindable(event="localeChange")]
public function localizedHeaderText(key:String):String {
return resourceManager.getString('resources', key);
}
来源:https://stackoverflow.com/questions/516843/flex-3-datagridcolumn-headertext-localization