我有一个列表组件,我有一个项目编辑器,用于列表中的项目。我希望用户在完成更改后点击一个按钮,因为我让他们在编辑器中编辑多个数据,我还想在关闭编辑器之前验证数据。我只是不知道如何处理按钮的click事件以使项目编辑器关闭并将其更改提交给数据提供者。
答案 0 :(得分:0)
您将需要使用验证器来验证数据,我想可能会对updateComplete执行某些操作并更改事件以延迟更新列表组件:
答案 1 :(得分:0)
我会使用数据绑定,让Flex为您完成工作。
让对象myObject具有可绑定属性myList:IList。将显示器绑定到此对象。
开始编辑时,请复制该列表。
On 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;
}
}
答案 2 :(得分:0)
要处理List控件中多个字段的编辑,您需要捕获ItemEditEnd事件,然后手动更改您感兴趣的字段。
请参阅“示例:使用带有列表控件的自定义项目编辑器” - http://livedocs.adobe.com/flex/3/html/help.html?content=celleditor_9.html#226555。
通常,当您从单元格中聚焦时,List将为您处理此事件的调度。我不确定它的属性是否在我的头脑中,但你应该能够在你的按钮点击处理程序中构建这个事件,然后自己发送它。