flex flexlib windowshade打开状态维护

时间:2010-09-22 14:36:55

标签: flex flex3

我的Flex + AIR应用程序中的转发器中有flexlib WindowShade组件。

<mx:XML id="mainMenuXML">
    <items>
        <item value="abc" />
        <item value="xyz" />
        <item value="lmn" />
    </items>
</mx:XML>

<mx:VBox width="100%" height="100%">
        <mx:Button label="Button" click="button1_clickHandler(event)"/>
    <mx:Repeater id="rep" dataProvider="{mainMenuXML.item}">
        <flexlib:WindowShade label="{rep.currentItem.@value}" width="50%" opened="{rep.currentItem.@open}">
            <mx:Label text="xxxxxxxxxx" />
        </flexlib:WindowShade>
    </mx:Repeater>
</mx:VBox>

现在在button1中单击处理程序我在XML(mainMenuXML)中追加子项,从而导致再添加一个windowshade实例。但问题是它打开了所有的windowshade内容。

我需要在添加新的windowshade实例后维护打开的状态。 例如: 最初我得到3个带有标签的windohades:abc,xyz,lmn全部打开。 现在我关闭xyz windowshade实例(通过单击标题) 现在我点击在mainMenuXML中附加子项的按钮,并添加一个带有一些标签“pqr”的windowshade实例。但现在我看到所有的windowshade实例都打开了。 但它应该像abc,lmn,pqr应该打开&amp; xyz关闭(property opened =“false”)。

请帮我维护windowshade实例的打开true / false状态。

我试图在dataprovider Bindable中添加一个属性来打开windhowshade的属性但是对我没用。

提前致谢

1 个答案:

答案 0 :(得分:0)

如果要保持打开的值,则需要更改基础数据提供者。所以你对此非常正确。如果我正确记住WindowShade组件,它在打开和关闭时不会调度事件,因此您可能需要扩展组件以添加它。我怀疑绑定会起作用,因为你在这两个值之间存在循环依赖。