Actionscript 3 数据网格内的AS3组合框-垂直滚动

Actionscript 3 数据网格内的AS3组合框-垂直滚动,actionscript-3,datagrid,combobox,scroll,cellrenderer,Actionscript 3,Datagrid,Combobox,Scroll,Cellrenderer,我正在做一个需要在我的数据网格中使用组合框的项目。很难找到任何关于这个案例的有价值的教程。 我已经创建了我的类: public class MyCellRender extends ComboBox implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; protected var _selected:Boolean

我正在做一个需要在我的数据网格中使用组合框的项目。很难找到任何关于这个案例的有价值的教程。 我已经创建了我的类:

   public class MyCellRender extends ComboBox implements ICellRenderer { 
        protected var _data:Object; 
        protected var _listData:ListData; 
        protected var _selected:Boolean; 
        private var _selectedItem:Object;
        private var _firsTime:Boolean;
        private var _tempArray:Object;
        public static var _stage:Object;

    public function MyCellRender():void { 
            super();
            this.addEventListener(Event.CHANGE, onSelItem);
            _firsTime = true;
    } 
   . 
   . 
   .
    public function set data(value:Object):void {
            _data = value;
            if(!_tempArray){
                _tempArray = new Array();
                for (var i:uint = 0; i < _data.combobox.groups.length; i++)
                    _tempArray.push( { label : _data.combobox.groups[i] } );
            }

            if (!_selected) {
                var _dp:DataProvider = new DataProvider(_tempArray);
                this.dataProvider = _dp;            
            }   

            if (_firsTime) {
                _firsTime = false;
                _selectedItem = _tempArray[_data.combobox.current];
            }

            var id:int = _tempArray.indexOf(_selectedItem);
            _data.combobox.current = id;

            this.selectedItem = _selectedItem;  
            _stage.dataGrid.dispatchEvent(new DataGridEvent(DataGridEvent.ITEM_EDIT_END));
        } 

     private function onSelItem(e:Event):void 
     {
            _selectedItem = (e.target as ComboBox).selectedItem;
     }

在dataGrid、dataProvider和我需要上下滚动的项目过多之前,一切都很好。我的带有组合框的列以随机的方式呈现选定的项目和可能的组。例如,如果在可见数据网格区域的底部有一个带有选定值“ABC”的组合框,并且我向下滚动以便可以看到更多的项目,则底部的项目(现在完全不同的行)具有选定值“ABC”。有人知道如何解决这个问题吗??干杯

我感觉这不是你的渲染器,而是你如何设置数据提供程序。我的组合框或整个数据网格的数据提供程序??我忘了添加combobox中每个单元格的数据不是常量,它可能会被更改,因此我需要“简单方法”来调整每个单元格combobox数据提供程序。例如,我有两个数据网格,一个叫做Items,第二个叫做ItemsGroups。每次我向ItemsGroups添加新行时,Items dataGrid中column group中的所有组合框都需要更新,因此可以选择刚刚添加的组。我的方式允许我这样做,但我仍然不知道如何处理滚动。我还注意到,combobxes中具有错误值的单元格通常具有正确的数据提供程序-我已经基于带有ComboBox的列生成了一个XML,并检查了值是否等于中所示的值dataGrid-答案是否定的。。。。请任何人,有什么想法吗?
public var _current:int;
public var _groups:Array;