2010-01-25 43 views
1

也許昨晚我沒有得到足夠的睡眠,但我遇到了一個奇怪的Flex 3.4問題。Flex + CheckBox + Dataprovider ...很可能是你今天會回答的最簡單的問題

場景:

我有一個類,作用的數據提供程序,以我命名爲整個應用程序「DataProvider.as」:

package 
{ 
public class DataProvider 
{ 

    [Bindable] 
    public static var email_enable:Boolean = true; 

} 
} 

在MXML形式,「Settings.mxml」我有一個複選框至於所獲得的價值,如果我在dataProvider中的變量設置爲true或FAL

<mx:CheckBox x="452" y="170" label="{Language.loadLanguageResource('lblEmail')}" 
      id="chkEmail" 
      selected="{DataProvider.email_enable}" 
      change="onChange()"/> 

一切都很好:這是綁定到我的DataProvider類的email_enable可變控制se,複選框反映了這種變化;但是,如果我點擊複選框,並改變它的值,該數據提供程序變量從未反映了變化

我一直在敲打我的頭靠在牆上,不能工作了這一點。我已經用我的心去尋找無濟於事。請救我。

回答

4

那是因爲Flex有一個雙向綁定,至少在3.x的; Flex 4將支持雙向綁定。

你需要一個事件偵聽器從監聽器添加到CheckBox和修改變量。

PS:你說得對,其實這是我今天回答最簡單的問題;)

+2

這裏有一種方法可以做到雙向綁定,它看起來像Laith的建議只是一個更復雜的方式,但它可能在這個問題上更加明確。 http://opensource.adobe.com/wiki/display/flexsdk/Two-way+Data+Binding – invertedSpear 2010-01-25 18:00:35

+0

謝謝先生,你是一位紳士和學者。 – 2010-01-25 18:12:45