0

でセルを編集しているときに、編集が完了dataGridするまで変更が に適用されません。編集dataProvider中に変更を反映させる方法はありますか?dataProvider

これを行う方法は、使用しているエディターをサブクラス化することであると思いますが、この場合NumericStepperは、どうすればよいかわかりません。

トリガーする必要がある何らかのイベントはありますか?

4

2 に答える 2

0

独自の 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>

お役に立てれば。

于 2009-01-31T02:09:17.217 に答える
0

itemeditor の外部で何かを参照する必要がある場合、私が行った方法は、outerDocument.somePublicVar を使用することです。

したがって、編集しているデータグリッドのデータプロバイダーを参照する必要がある場合は、データグリッドにバインドした変数を更新できますが、パブリックである必要があります (私は思う)、またはデータグリッドのデータプロバイダーを直接編集できます。

アイテム エディター内では、変更イベントをキャッチし、そこからデータ プロバイダーの値を更新するだけです。ただし、end edit item イベントがスローされることに注意してください。そこで何らかの処理を行うと、データ プロバイダーも混乱する可能性があります。

于 2008-12-20T19:07:59.583 に答える