【问题标题】:Flex 3 DataGridColumn HeaderText LocalizationFlex 3 DataGridColumn HeaderText 本地化
【发布时间】:2009-02-05 17:07:00
【问题描述】:
我正在使用 Flex 3 中的 ResourceBundle 在多语言应用程序中工作。我在 DataGrid 中显示数据并像这样定义 DataGridColumn headerText
headerText="{localizedHeaderText('LABEL_USER_NAME')}
此函数返回用户名的本地化标签,但是当我动态选择另一种语言时,会刷新但 headerText 标签?
有什么想法吗?
谢谢
【问题讨论】:
标签:
apache-flex
actionscript-3
actionscript
flex3
localization
【解决方案1】:
除非您使localizedHeaderText 方法可绑定,否则将永远不会重新评估绑定,因为它不知道resourceManager 的更改事件。
假设您在 UIComponent 子类中,您需要执行以下操作:
- 覆盖 resourcesChanged 并调度自定义事件
- 在方法上方添加[Bindable(event="customEvent")]
示例代码:
override protected function resourcesChanged():void {
super.resourcesChanged();
dispatchEvent(new Event("localeChange"));
}
和
[Bindable(event="localeChange")]
public function localizedHeaderText(key:String):String {
return resourceManager.getString('resources', key);
}