У меня есть 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();