2009-09-03 47 views
1

我试图设置一个窗体,当一个ArrayCollection被绑定到几个项目时呈现一个组合框,并且当它为空或只有一个项目。我试着通过创建这个类来做到这一点,但不幸的是,我们绑定的数据提供者在执行setter时不会是空的。有没有不同的方式我应该这样做?Flex:基于Databinding事件的内容更改控件属性

public class ComboboxOrFail extends ComboBox 
{ 
    public function ComboboxOrFail() 
    { 
     super(); 
    } 

    public override function get dataProvider():Object 
    { 
     return super.dataProvider; 
    } 

    public override function set dataProvider(value:Object):void 
    { 
     this.visible = (value && value.length && value.length > 1); 
     super.dataProvider = value; 
    } 
} 

回答

1

我以不同的方式做到了这一点:

<mx:ComboBox dataProvider="{myData}" visible="{myData != null &amp;&amp; myData.length > 1}"/> 

假设myData的是绑定的,这应该做的伎俩!