2010-09-29 61 views
2

這對DataGrid專家來說可能是一件容易的事。我下面從行內動態添加行到DataGrid的例子觸發項目編輯器中的itemEditEnd事件

http://www.switchonthecode.com/tutorials/adding-dynamic-rows-to-flex-datagrid

我的,我想acoomlish的調整,是有一個自定義的itemEditor是有兩個TextInputs和OK按鈕形式。對於我的生活,我無法獲得該按鈕來觸發DataGrid的itemEditEnd事件,在我調用destroyItemEditor之前有一些處理。我試着直接調度事件,但在DataGrid的updateDisplayList中發現奇怪的錯誤,說editItemPosition爲null(editedItemPosition.rowIndex)。有任何想法嗎?

回答

0

itemEditEnd將在您單擊項目編輯器之外時觸發。如果您自己調度,則需要在調度之前將rowIndexproperty of the event設置爲適當的值。

+0

我實際上有rowIndex(和所有其他DatGridEvent屬性)設置,但只是不斷得到那個奇怪的錯誤。 – user461305 2010-09-29 13:41:10

3

我想出了「杜漢」的答案。基本上,在itemEditor中使用listData.owner獲取對DataGrid的引用,然後設置DataGrid的editedItemPosition和selectedIndex。這種方式讓組件擔心清理itemEditor。

var grid:DataGrid = listData.owner as DataGrid; 
grid.editedItemPosition = null; 
grid.selectedIndex = -1;