Đây là mã. Nó là cơ bản một bản sao của BindingUtils.bindProperty được thiết lập cho một ComboBox để cả hai hộp combo và mô hình được cập nhật khi một trong hai thay đổi.
public static function bindProperty2(site:Object, prop:String, host:Object, chain:Object, commitOnly:Boolean = false):ChangeWatcher
{
var cbx:ComboBox = null;
if (site is ComboBox) { cbx = ComboBox(site); }
if (host is ComboBox) { cbx = ComboBox(host); }
var labelField:String = "listID";
var w:ChangeWatcher = ChangeWatcher.watch(host, chain, null, commitOnly);
if (w != null)
{
var func:Function;
if (site is ComboBox)
{
func = function(event:*):void
{
var dp:ICollectionView = ICollectionView(site.dataProvider);
var selItem:Object = null;
for (var i:int=0; i<dp.length; i++)
{
var obj:Object = dp[i];
if (obj.hasOwnProperty(labelField))
{
var val:String = String(obj[labelField]);
if (val == w.getValue())
{
selItem = obj;
break;
}
}
}
site.selectedItem = selItem;
};
w.setHandler(func);
func(null);
}
else
{
func = function(event:*):void
{
var value:Object = w.getValue();
if (value == null)
{
site[prop] = null;
}
else
{
site[prop] = String(w.getValue()[labelField]);
}
};
w.setHandler(func);
func(null);
}
}
return w;
}
Nguồn
2008-08-18 06:03:49
điều này dường như không phải là câu trả lời cho câu hỏi – rfunduk