簡體   English   中英

DataGrid不合適的dataProvider值

[英]DataGrid not appropriate dataProvider value

我有一個充滿'o'對象的ArrayCollection。 此AC應該是DataGrid的dataProvider。 設置dp后: dgMT.dataProvider=acDataGrid ,DataGrid僅包含dgMT.dataProvider=acDataGrid的最后一項。 碼:

[Bindable]
        public var acDataGrid:ArrayCollection = new ArrayCollection();
        protected function ddlLanguage_changeHandler(event:IndexChangeEvent):void{

            gcTranslate.headerText=Globals.acLanguages.getItemAt(ddlLanguage.selectedIndex,0).toString();
            Globals.acActValues=convertXmlToArrayCollection(File.applicationDirectory.resolvePath("xmls"+File.separator+Globals.acFileNames.getItemAt(ddlLanguage.selectedIndex,0)));

            Globals.acDataGrid.removeAll();
            var o:DataGridObject = new DataGridObject();
            var i:int=0;
            var angol:Object;
            for each(angol in Globals.acValues){
                o.en=angol.value;
                o.name=angol.name;

                if(i<Globals.acActValues.length && o.name==Globals.acActValues.getItemAt(i,0).name){
                    o.translation=Globals.acActValues.getItemAt(i,0).value;                 

                }
                else{
                    o.translation="";
                    Globals.acActValues.addItemAt("",i);
                }

                acDataGrid.addItemAt(o,i);

                trace("NAME: "+acDataGrid.getItemAt(i,0).name+" VAL:"+acDataGrid.getItemAt(i,0).en+"TRANS: "+acDataGrid.getItemAt(i,0).translation);
// the values are different!
                i++;
            }
            dgMT.dataProvider=acDataGrid;//setting the dataProvider         

        }

我如何才能達到用正確的值填充DataGrid的行? 謝謝!

你實例o只有一次,外面for循環。 這意味着您只需更改該實例的屬性的值並將該實例重復添加到數據提供者中。 相反,您應該在每次迭代中創建一個新實例。

要解決此問題,只需在for循環內移動o的實例:

for each(angol in Globals.acValues){
    var o:DataGridObject = new DataGridObject();
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM