首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GridColumn labelFunction不可绑定

GridColumn labelFunction不可绑定
EN

Stack Overflow用户
提问于 2013-06-28 05:47:10
回答 1查看 949关注 0票数 2

最近,我注意到在gridColumn中使用labelFunction时出现了一个问题:

当嵌套(显示)属性更改时,它不会刷新。

代码语言:javascript
复制
// SomeClass and SomeSubClass has [Bindable] metadata
[Bindable]
private var someSubClass:SomeSubClass;
[Bindable]
private var someClass:SomeClass;

private function inits():void{
    someSubClass = new SomeSubClass();
    someSubClass.value = "SomeSubValue";
    someClass = new SomeClass();
    someClass.subclass = someSubClass;
    var ac:ArrayCollection = new ArrayCollection();
    ac.addItem(someClass);
    dg.dataProvider = ac;    
}
private function myLabelFunction(item:Object, column:GridColumn):String
{
    return (item.subclass)? item.subclass.value : "";
}

mxml

代码语言:javascript
复制
<s:Button click="someSubClass.value = 'Hello World'"/>
<s:DataGrid dataProvider="{dataProvider}" width="100%" height="200">
    <s:columns>
        <s:ArrayList>
            <s:GridColumn labelFunction="{myLabelFunction}" headerText="NoRenderer"/>
            <s:GridColumn headerText="WithRenderer">
                <s:itemRenderer>
                    <fx:Component>
                          <s:GridItemRenderer>
                              <s:Label text="{data.subclass.value}"/>
                          </s:GridItemRenderer>
                    </fx:Component>
                </s:itemRenderer>
            </s:gridColumn>
        </s:ArrayList>
    </s:columns>
</s:DataGrid>

当按钮单击时,使用labelFunction的第一列仍然显示旧值,但第二列(使用自定义渲染器)工作正常。我正在尝试使用尽可能少的自定义项目渲染器的性能问题。或者我的标签函数出了什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-28 22:35:26

我从来没有尝试过这个,但我对它不更新并不感到惊讶。在第二个示例中,您显式地在data.subclass.value上设置了绑定链。在使用myLabelFunction的第一种情况下,item.subclass上没有设置绑定,所以它不会有任何“神奇”的方式来知道您想要查看该值的变化。

我会选择自定义渲染器,我不确定您的特定性能问题是什么,但只要您保留虚拟布局/渲染器回收,它应该是可管理的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17353782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档