Flex / AIR:DropDownList并不总是在点击时打开

时间:2011-05-12 09:57:38

标签: flex drop-down-menu air

我有一个带有2-3个DropDownLists和一堆其他控件的AIR应用程序。 DropDownLists绑定到中央模型单例中的数据提供程序(ArrayCollections)。在发布时,它们都可以正常工作。

但是,当我单击一个按钮将新对象添加到同一模型中另一个ArrayCollection中的对象时,DropDownLists变得很奇怪。他们仍然记录点击次数,所有其他控件仍然像以前一样工作,但下拉列表不会打开。单击/等待通常会打开下拉列表,但如果我不进行其他选择,则在关闭后仍然无法打开。进行不同的选择会使DropDownList再次起作用,但其他人可能仍然拒绝打开。

如果我使用Ctrl +向下箭头打开下拉列表,它们会一直工作,所以只有点击不能正确触发打开。我可以通过点击下拉列表中的openDropDown()来解决此问题,但这感觉不对。

我正在使用4.1 SDK,下拉列表是:DropDownLists。我尝试使用mx:ComboBoxes,但得到了相同的行为。 编辑:奇怪的是,使用s:ComboBoxes它们可以正常工作,但我真的不想使用它们,因为它们看起来似乎不可编辑。

有没有人遇到过这个并设法解决它?欢迎任何建议。

2 个答案:

答案 0 :(得分:1)

在对此进行了大量的修补之后,似乎问题出现在我有一个ToggleButtonBar,它的enabled属性设置基于我对视图的表示模型中的属性。其他控件处理

enabled="{model.certainObject != null}"

完全没问题,但不是ToggleButtonBar。它设置属性应该,但不知何故似乎导致我一直有的下拉问题。猜猜我不会使用ToggleButtonBar ... = /

答案 1 :(得分:0)

首先要检查的是:您的Model Singleton中的ArrayCollections是否标记为Bindable?您的ArrayCollections是否绑定到Model Singleton中的值?

绑定是一种奇怪的野兽;如果你在一个对象中放置了很多Bindable属性;我理解一个变化可以触发所有可绑定属性的机会;如果你有很多不同的视图都绑定到同一个Singleton对象,那么它可以在应用程序中涟漪。

要检查的另一件事:如果您使用与dataProvider相同的Collection到多个ComboBox,我看到了非常奇怪的结果。 (我假设如果使用多个DropDownLists,相同的奇怪行为将持续存在)

但是,我只是在这里猜测。很可能在你的代码中有些东西是关闭的。你能提供一个可运行的样本来证明你的问题吗?