Aggiunta di una nuova riga nella posizione corretta a un utente ordinato wingrid con bindingsource
-
20-08-2019 - |
Domanda
Ho un Infragistics UltraGrid che usa un bindingSource.
Se aggiungo un nuovo oggetto al mio elenco di rilegature, viene aggiunta una riga in fondo alla griglia, il che va bene se non esiste un ordinamento definito dall'utente.
La domanda è se l'utente fa clic sull'intestazione di una colonna per ordinare la griglia, c'è un modo per far apparire le nuove righe nell'ordine corretto invece che sempre in fondo?
Riordinare tutte le righe su ogni inserto è troppo costoso.
Soluzione
Sembra una specie di ghetto. Il supporto di Infragistics ha anche indicato che il metodo RefreshSortPosition () è l'unica scelta.
// Add to binding list which will trigger a row to be added to the bound ultragrid.
this.bindingList.Add(new Person("Smith", "John"));
// Get length since we know this will always be added to the end
int length = this.ultraGrid.Rows.All.Length;
// Get it to sort
this.ultraGrid.Rows[length - 1].RefreshSortPosition();
Per essere un po 'più efficienti, puoi sempre essere intelligente disabilitando il ridisegno, ecc. e quindi chiama l'aggiornamento su un gruppo di righe dopo un gruppo di ordini, ecc ...
Spero che sia d'aiuto. Ho avuto pochissima fortuna su Google questo problema.