class DatagridEvents extends EventGroup { var change:EventDataGrid->Void>; } class Datagrid { var events : DatagridEvents; } typedef ListenerHandlers = { var onDataChange : Binding; } class Listener implements EventHandlers { var handlers : ListenerHandlers; function onDataChange(value:String, grid:Datagrid){ ... } public function new(){ var d = new Datagrid(); handlers = { onDataChange : d.events.change.bind(onDataChange); } handlers.onDataChange.disable(); // Temp. disable this handler (it will not listen to events) Event.unbind(this); // Unsubscribes all handlers for this object } }