我的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的属性但是对我没用。
提前致谢
答案 0 :(得分:0)
如果要保持打开的值,则需要更改基础数据提供者。所以你对此非常正确。如果我正确记住WindowShade组件,它在打开和关闭时不会调度事件,因此您可能需要扩展组件以添加它。我怀疑绑定会起作用,因为你在这两个值之间存在循环依赖。