Почему я не могу отправить событие из ADG renderProvider? - PullRequest
0 голосов
/ 01 ноября 2011

У меня есть renderProvider для расширенной сетки данных:

<mx:rendererProviders>

                        <mx:AdvancedDataGridRendererProvider 
                            depth="2" 
                            columnIndex="1" 
                            renderer="com.controls.GroupedTradesGrid"
                            columnSpan="0"/>

                    </mx:rendererProviders> 

renderProvider - это еще одна DataGrid, и когда вы устанавливаете флажок (средство визуализации элементов), он отправляет это событие:

public function ungroupTrade():void
        {
            var evt:TradeEvent = new TradeEvent( 'removeTradeEvent' );
            evt.trade = this.trades_dg.selectedItem;
            evt.dispatch();
        } 

Я прослушиваю событие на странице приложения по умолчанию:

this.addEventListener( TradeEvent.REMOVE_TRADE_EVENT, removeTrade );

Но событие никогда не попадает туда. Мне не разрешено отправлять событие из renderProvider? Или что-то еще происходит?

Спасибо. Мне тяжело с ADG последние пару дней.

ОБНОВЛЕНИЕ: я публикую класс Event:

public class TradeEvent extends CairngormEvent
{
    public static const REMOVE_TRADE_EVENT:String = 'removeTradeEvent';

    public var trade:Object = new Object();

    public function TradeEvent( type:String, bubbles:Boolean=true, cancelable:Boolean=false )
    {
        super( type, bubbles, cancelable );
    }

РЕШЕНО: Ну, я просто попытался ответить на свой вопрос, но он просит меня подождать 8 часов. А пока ...

Хорошо, хорошо ... Я не совсем уверен, почему это работает, но решение состоит в том, чтобы использовать это:

dispatchEvent( evt );

вместо этого:

evt.dispatch();
...