リスト コンポーネントがあり、リスト内のアイテム用のアイテム エディターがあります。エディターで複数のデータを編集してもらい、エディターを閉じる前にデータを検証したいので、変更が完了したらユーザーがクリックするボタンが必要です。ボタンのクリック イベントでアイテム エディターを閉じてデータ プロバイダーに変更をコミットする方法がわかりません。
2776 次
3 に答える
0
データバインディングを使用して、Flexに任せます。
バインド可能なプロパティmyList:IListを持つオブジェクトmyObjectがあります。ディスプレイをこのオブジェクトにバインドします。
編集を開始したら、そのリストをコピーします。
MouseEvent.CLICKの場合:
var ed:Editor // Your list editing object.
var edProvider:IList = ed.dataProvider;
var targList:IList = myObject.myList;
var bool:Boolean = ( myObject.myList.length > edProvider.length );
var len:int = ( bool )? targList.length: edProvider.length;
var item:* = null;
for( var i:int = 0; i < len; i++ )
{
try // a "just in case". You probably will never have a problem.
{
item = edProvider.getItemAt( i );
targList.setItemAt( item, i );
}
catch( error:Error )
{
continue;
}
}
于 2009-05-19T18:58:00.087 に答える
0
リストコントロールの複数のフィールドの編集を処理するには、ItemEditEndイベントをキャッチしてから、目的のフィールドを手動で変更する必要があります。
http://livedocs.adobe.com/flex/3/html/help.html?content=celleditor_9.html#226555の「例:リストコントロールでカスタムアイテムエディタを使用する」を参照してください。
通常、セルからフォーカスアウトすると、リストがこのイベントのディスパッチを処理します。頭のてっぺんからそのプロパティがわからないのですが、ボタンクリックハンドラーでこのイベントを作成して、自分でディスパッチできるはずです。
于 2009-05-20T14:52:17.507 に答える