2009-07-28 56 views
0

我在Flex DataGrid中有一個複選框,當我滾動時,其他行會隨機選中/取消選中。Flex Datagrid中的複選框在滾動中破壞

閱讀結束後:Creating a column of RadioButtons in Adobe Flex

很明顯的是,itemRenderer是越來越回收,但我有解決問題的提出有其移動信息有關視圖到模型中。

有沒有人有更好的解決方法,這不會強迫我把UI的信息放到我的動作模型類中? (在我的情況下,我將傳入的XML數據轉換爲動作類,並且這些都綁定到我的數據網格)。

感謝您的幫助。


謝謝大家。很棒的提示。不幸的是,保持模型純淨度變得太高,所以我剛剛污染了模型,就像我原來的帖子中的鏈接。 :(至少它的作品。

扯談,整潔的想法..我試圖與這雖然工作了將近一整天,沒有運氣。

brd6644,在隔開兩個模型類善念..我可能

回答

1

您可以創建一個DataGrid的子類,它在內部存儲哪些行被選中/取消選中(Array/Collection of Boolean),但是您會有一個與dataProvider保持同步的惡魔當我對它進行排序或過濾時,我想你可以使用一個字典,該字典在dataProvider的每個索引中用對象作爲鍵值,並用一個布爾值來表示它是否被選中,這至少會隔離你從排序/過濾問題。如果你的dataProvider中有重複的引用,這將不起作用。

或者,您可以創建ActionScript模型類的子類並將「selected」屬性添加到它,然後編寫一些簡單的實用工具方法來在兩者之間進行「轉換」。這樣你的View只處理「ViewModel」類和其他層(特別是服務器端)只處理真正的「Model」類。

+0

我第二個想法。我通常爲所有分配給網格的模型類創建一個基類,在這裏我定義了一個boolean isChecked(在我的設計中需要的其他一些屬性中)。 – 2009-07-28 23:45:44

0

除了cliff.meyers說的,還有第三種選擇是創建一個自定義IList類,如Alex Harui在blog post中所述。它實際上非常聰明,而且更乾淨,因爲它不需要子類化組件或污染模型類。