2010-02-14 77 views
1

我已經添加的事件監聽到當電網完成訴諸於它的dataProvider中的項目被解僱的COLLECTION_CHANGE事件,列標題的用戶點擊後:Adob​​e Flex Flash Builder DataGrid dataProvider CollectionEvent.COLLECTION_CHANGE處理程序對DataGrid的訪問權限?

 
    MyType (myDataGrid.dataProvider).addEventListener(CollectionEvent.COLLECTION_CHANGE, 
onDataGridResort); 

... 

    private function onDataGridResort(e:CollectionEvent) : void { 


    } 

MyDataGrid有一些自定義的輔助方法使用dataProvider,從onDataGridResort函數內部訪問它們會很有用。我可以訪問dataProvider已附加到的數據網格嗎?當我在調試器檢查「E」(CollectionEvent),我看到

 
[inherited] 
    currentTarget 
     listeners 
     [0] 
     [1] 
     [2] 
      savedThis MyDataGrid 

這似乎不可靠的方法,從這個事件處理程序中獲得的網格組件 - 將電網始終處於財產被發現savedThis在currentTarget下的偵聽器數組中的偏移量[2]處?

回答

1

依靠currentTarget.listeners屬性是非常不可靠的。從事件監聽器訪問網格的問題是dataProvider廣播事件,而不是網格。所以事件和網格之間確實沒有關係。

在上例中,似乎您可以直接使用myDataGrid訪問網格。如果實際應用中不是這種情況,那麼您需要創建一個包裝類,其中包含對MyDataGridonDataGridResort的引用,可以從事件處理程序引用網格。

相關問題