でセルを編集しているときに、編集が完了dataGrid
するまで変更が に適用されません。編集dataProvider
中に変更を反映させる方法はありますか?dataProvider
これを行う方法は、使用しているエディターをサブクラス化することであると思いますが、この場合NumericStepper
は、どうすればよいかわかりません。
トリガーする必要がある何らかのイベントはありますか?
でセルを編集しているときに、編集が完了dataGrid
するまで変更が に適用されません。編集dataProvider
中に変更を反映させる方法はありますか?dataProvider
これを行う方法は、使用しているエディターをサブクラス化することであると思いますが、この場合NumericStepper
は、どうすればよいかわかりません。
トリガーする必要がある何らかのイベントはありますか?
独自の itemEditor/itemRenderer を作成すると、次のようなことができます。
<mx:TextInput xmlns:mx="..." change="onChange(event)"
implements="mx.controls.listClasses.IDropInListItemRenderer">
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.BaseListData;
[Bindable("dataChange")] private var _listData : BaseListData;
public function get listData():BaseListData
{
return _listData;
}
public function set listData( value : BaseListData ) : void
{
_listData = value;
}
private function onChange(event:Event):void
{
this.data[ (listData as DataGridListData).dataField ] = this.text;
}
]]>
</mx:Script>
</mx:TextInput>
お役に立てれば。
itemeditor の外部で何かを参照する必要がある場合、私が行った方法は、outerDocument.somePublicVar を使用することです。
したがって、編集しているデータグリッドのデータプロバイダーを参照する必要がある場合は、データグリッドにバインドした変数を更新できますが、パブリックである必要があります (私は思う)、またはデータグリッドのデータプロバイダーを直接編集できます。
アイテム エディター内では、変更イベントをキャッチし、そこからデータ プロバイダーの値を更新するだけです。ただし、end edit item イベントがスローされることに注意してください。そこで何らかの処理を行うと、データ プロバイダーも混乱する可能性があります。