本文介绍了Flex 3的一个DataGridColumn HEADERTEXT本地化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的工作在Flex 3中使用资源包,我在DataGrid中显示数据的多语言应用程序和定义的DataGridColumn HEADERTEXT这样

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')}

该函数返回本地化的标签,用户名,但是当我dynamcally选择其他语言evertying被刷新,但HEADERTEXT标签?

this function returns the localized label for the username, but when I dynamcally select another language evertying gets refreshed but the headerText labels?

有什么想法?

感谢

推荐答案

除非你做出localizedHeaderText方法绑定,绑定将永远不会重新评估,因为它不知道ResourceManager中的变动情况。

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.

假设你是在UIComponent子类中,你需要做到以下几点:

Assuming you are in a UIComponent subclass, you'll need to do the following:

  1. 覆盖resourcesChanged和调度自定义事件
  2. 补充[可绑定(事件=自定义事件)上面的方法

样品code:

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);
}

这篇关于Flex 3的一个DataGridColumn HEADERTEXT本地化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 13:20