Flex 3 DataGridColumn HeaderText本地化

时间:2009-02-05 17:07:00

标签: flex actionscript-3 actionscript flex3 localization

我正在使用Flex 3中的ResourceBundle在多语言应用程序中工作。我在DataGrid中显示数据并定义了像这样的DataGridColumn headerText

headerText="{localizedHeaderText('LABEL_USER_NAME')}

此函数返回用户名的本地化标签,但是当我动态选择另一种语言时,evertying会刷新但是headerText标签?

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:3)

除非你使localizedHeaderText方法可绑定,否则永远不会重新评估绑定,因为它不知道resourceManager的change事件。

假设您在UIComponent子类中,则需要执行以下操作:

  1. 覆盖resourcesChanged并发送自定义事件
  2. 在方法
  3. 上方添加[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);
    }