Здесь есть несколько вещей ... во-первых, это то, что вы просили, а во-вторых, то, что, я думаю, вам действительно нужно.
Во-первых, когда вы говорите «Содержащий класс», я предполагаю, что вы ссылаетесь на родителя DataGrid. Это очень отличается от родителя itemRenderer. Чтобы родительский объект DataGrid отправлял событие из кода itemRenderer, я бы использовал outerDocument .
protected function selectedCheckbox_clickHandler(event:MouseEvent):void
{
cbSelected = selectedCheckbox.selected;
outerDocument.dispatchEvent(new Event('myEvent'));
}
Мне не нравится пользователь externalDocument, потому что он нарушает инкапсуляцию.
Однако я подозреваю, что у вас должен быть прослушиватель в родительском элементе, и не имеет значения, запускает ли родитель событие или нет. В этом случае вы можете просто создать событие, которое всплывает, используя свойство Bubble вашего события:
protected function selectedCheckbox_clickHandler(event:MouseEvent):void
{
cbSelected = selectedCheckbox.selected;
outerDocument.dispatchEvent(new Event('myEvent',true));
}
Вы можете прослушивать событие в любом компоненте в иерархической цепочке вплоть до основного Приложения. Это включает в себя вашу DataGrid и родительский контейнер вашей DataGrid. Событие не будет отображаться в подсказке кода MXML, но вы можете добавить eventListener, используя метод addEventListener:
dataGrid.addEventListener('myEvent',myEventListener);
Когда вам нужно сказать родителю сделать что-то из itemRenderer; Мой подход - это всплывающее событие от средства визуализации.