2008-08-08 38 views
7

Có ai biết tại sao khi sử dụng BindingUtils trên thuộc tính selectedItem của ComboBox bạn nhận được cảnh báo sau đây? Bất kỳ ý tưởng làm thế nào để giải quyết vấn đề?Làm cách nào để loại bỏ cảnh báo "nhiều mục nhập mô tả"?

Tính ràng buộc vẫn hoạt động đúng cách, nhưng sẽ tốt hơn nếu loại bỏ cảnh báo.

warning: multiple describeType entries for 'selectedItem' on type 'mx.controls::ComboBox': 
<accessor name="selectedItem" access="readwrite" type="Object" declaredBy="mx.controls::ComboBase"> 
    <metadata name="Bindable"> 
    <arg key="" value="valueCommit"/> 
    </metadata> 

Trả lời

0

Đâ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; 
} 
+0

điều này dường như không phải là câu trả lời cho câu hỏi – rfunduk

1

Sẽ tốt hơn nếu ghi đè thuộc tính được đề cập và khai báo cuối cùng.

Các vấn đề liên quan