アイテムレンダラーは実際には別のコンポーネントであるため、thisキーワードを使用してディスパッチする場合、他のセル/アイテムレンダラーには表示されません。
おそらくあなたが予想していたよりも少し複雑ですが、これはあなたがそのようなことを達成する方法です
1)行番号を渡すことができるカスタムイベントを作成する必要があります。このようなものが機能します:
package
{
import flash.events.Event;
public class EditRowEvent extends Event
{
public function EditRowEvent(type:String, rowEditingIn:Number, bubbles:Boolean=false, cancelable:Boolean=false)
{
rowEditing = rowEditingIn;
super(type, bubbles, cancelable);
}
public var rowEditing : Number;
}
}
2)すべてのアイテムがレンダリングできるものに編集する場合は、ディスパッチする必要があります。親グリッドのようなもの:
DataGrid(this.parentDocument).dispatchEvent( new EditRowEvent( 'beginEdit', this_renderers_row ) );
3)親でもこのイベントをリッスンする必要があります(アイテムレンダラーが初期化されるときにこれを行います):
protected function onCreationComplete(event:FlexEvent=null):void
{
DataGrid(this.parentDocument).addEventListener( 'beginEdit' , handleEditOnRow );
}
4)その特定のアイテムレンダラーの行で編集が開始されたときに何をしたいのかを処理します
public function handleEditOnRow ( event : EditRowEvent ) : void {
if( this_renderers_row == event.rowEditing ){
// code to execute when someone starts editing this row!
}
}