擦除上的dataProvider更新在柔性,我使用從其dataProvider(的ListCollectionView)顯示特定項(將selectedItem字段)的成分。將selectedItem Flex中
我的dataProvider的元素可以通過不同的方式進行編輯。每次編輯一次,就會發送一個更新事件,導致更新dataProvider集合(ListCollectionView :: listChangeHandler)。
在這個過程中,如果我的selectedItem屬性是所編輯的元件,它被刪除(通過的ListCollectionView :: moveItemInView設置爲空),即使編輯的字段無處使用。
有沒有辦法避免這種情況?
更具體地說,而無需之前保存它,有它丟失,事後恢復它(這將是在這裏幾乎沒有可行的)
編輯: 好吧,我想我可以進一步解釋:
在我的代碼中,我對數據綁定到dataProvider的列表項之一的屬性做了一個操作。 我不知道爲什麼,可能是因爲該項目的類是[可綁定],這會引發更新事件。
該事件被ArrayList :: itemUpdateHandler調度到ListCollectionView :: listChangeHandler。 此時,該事件「種」是「更新」,這似乎確定我...
但是從那裏,它進入的ListCollectionView :: moveItemInView(我想,它使SENS的項目應該有如果列表被排序,則更新其位置)。 該功能可將該物品從其以前的位置移除,並將其添加到其新位置。
由於它刪除它,它發送一個新的事件與「刪除」類。 這就是事情發生錯誤的地方:我的組件監聽它使用的數據的移除事件,如果刪除了這個元素,則移除它的selectedItem。
我覺得是隨時待命,以moveItemInView,有一個問題: 的呼叫中的ListCollectionView :: handlePropertyChangeEvents(被稱爲listChangeHandler)是: moveItemInView(updateEntry.item,updateEntry.item,eventItems); (其中updateEntry.item是列表的修改項和eventItems空數組)
鑑於其原型是: 私有函數moveItemInView(項目:對象,調度:布爾=真,updateEventItems:數組=空):void
這是一個錯誤嗎?
感謝您的answere! 實際上,dataProvider時databinded到列表: – Michel
對不起,我是新來的StackOverflow(並非作爲消費者),並試圖返回到一個新的行... 實際上,dataProvider時databinded到列表: <組件的dataProvider =「{myList中}」> 我不主動更新的數據提供程序,我想我只是更新列表的項目。 這是一條線,我修改這樣一個項目的屬性,拋出一個更新事件,然後轉移到ListCollectionView – Michel
你將不得不分享更多的代碼,然後編輯你的問題,並提供更多的細節。 – JeffryHouser