Casella di controllo in Flex Datagrid rotto su Scorrimento

voti
0

Ho una casella di controllo in un Flex DataGrid, e quando ho scorrere, altre righe vengono controllati in modo casuale / incontrollato.

Dopo aver letto su: Creazione di una colonna di RadioButtons in Adobe Flex

è chiaro che i itemRenderers sono sempre riciclate, ma il problema che ho con la soluzione presentata c'è si muove informazioni circa la vista nel modello.

Qualcuno ha un modo migliore di risolverlo, che non mi costringono a inserire le informazioni per l'interfaccia utente nelle mie classi ActionScript modello? (Nel mio caso, io sono la conversione dei dati XML in entrata a classi ActionScript, e questi sono sempre legato al mio datagrid).

Grazie per l'aiuto.


grazie a tutti. grandi punte. purtroppo stava diventando troppo in alto per mantenere il modello puro, così ho appena inquinato il modello come il link nel mio post originale. :( almeno funziona.

Chetan, idea pulito .. ho provato a lavorare con questo per quasi un giorno intero senza fortuna però.

brd6644, buoni pensieri sulla separazione delle due classi del modello .. Potrei tornare indietro e farlo in seguito.

È pubblicato 28/07/2009 alle 23:18
fonte dall'utente
In altre lingue...                            


2 risposte

voti
1

Si potrebbe creare una sottoclasse di DataGrid che internamente memorizza ciò righe sono controllati / incontrollato (Array / Raccolta di booleano), ma si avrebbe un diavolo di un tempo tenendo questo in sincronia con il dataProvider quando viene ordinato o filtrato. Immagino che si potrebbe usare un dizionario che viene digitato dall'oggetto in ogni indice del dataProvider e valorizzata con un valore booleano per indicare se è selezionata. Sarebbe almeno di isolare dai problemi di ordinamento / filtro. Questo non funzionerà se si dispone di riferimenti duplicati nel dataProvider.

In alternativa, è possibile creare una sottoclasse della classe del modello ActionScript e aggiungere la proprietà "selezionato" ad esso, quindi scrivere alcuni semplici metodi di utilità per "convertire" tra i due. In questo modo la visualizzazione si occupa solo con la classe "ViewModel" e si occupa solo con il vero e proprio "modello" di classe gli altri livelli (in particolare il lato server).

Risposto il 29/07/2009 a 00:37
fonte dall'utente

voti
0

Aggiungendo a ciò cliff.meyers detto, c'è una terza opzione di creare una classe IList personalizzata come descritto in questo post del blog di Alex Harui. E 'abbastanza intelligente in realtà, ed è più pulito in quanto non richiede sottoclasse del componente o inquinanti le classi del modello.

Risposto il 29/07/2009 a 01:35
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more