我有一个带有ItemRenderer的DataGridColumn,它扩展了Box组件。默认显示是Text组件。当用户单击文本组件时,我更改状态以添加PopUpMenuButton子项,并使Text组件不可见。这很好用。但是,我只想让一个PopUpMenuButton一次在DataGrid中可见(类似于itemEditor的工作方式)。我不想使用itemEditor,因为我遇到了太多问题,试图让它在这个实例中工作。
我正在我的itemRenderer中实现IDropInListItemRenderer,以便访问listData属性,这将给我所有者(DataGrid),但我不知道如何“关闭”其他itemRenderer中的“编辑”状态DataGrid。
我该如何做到这一点?
感谢。
答案 0 :(得分:0)
我们走了。我只是在listData.owner中添加了一个Listener for Change Events - 如果它被触发,我将currentState更新为null。奇迹般有效。比试图访问列中的itemRenderer并重置它们要容易得多。性能也更好。
private function label_clickHandler():void
{
showEditor();
}
private function showEditor():void
{
this.currentState = "editingMode";
var ownerListBase:ListBase = ListBase(listData.owner);
ownerListBase.addEventListener(ListEvent.CHANGE, ownerListBase_changeHandler);
}
private function ownerListBase_changeHandler(event:ListEvent):void
{
this.currentState = null;
var ownerListBase:ListBase = ListBase(listData.owner);
ownerListBase.removeEventListener(ListEvent.CHANGE, ownerListBase_changeHandler);
}