Al momento ho due WPF listboxes imitando le seguenti funzionalitàAumentare WPF prestazioni ObservableCollection
Sto usando 2 ObservableCollections per consentire agli utenti di selezionare qualsiasi elemento di cui hanno bisogno (flessibilità è la chiave qui). Il problema principale è che ho migliaia di di elementi raggruppati in entrambi gli elenchi. Tutto sommato il design funziona molto bene (con poche decine di elementi), ma il mio ostacolo è quando un utente copia tutti gli elementi disponibili da sinistra a destra mentre lo schermo si blocca (tempo di esecuzione su un thread diverso?).
Guardando a ObservableCollection manca un metodo AddRange e ci sono varie implementazioni disponibili su Internet. So anche che l'evento CollectionChanged viene licenziato inutilmente dato che ogni elemento viene copiato in modo orribile su prestazioni drenanti.
È probabile che sia necessario consentire agli utenti di scegliere tra gruppi di oltre 10.000 elementi in futuro, il che suona come una cattiva idea, ma non è negoziabile in quanto il raggruppamento nella casella di riepilogo (CollectionViewSource) funziona davvero bene, ma ha l'effetto collaterale di commutazione off la virtualizzazione di entrambe le listboxes
Cosa posso fare per migliorare le prestazioni durante il caricamento di una casella di riepilogo con migliaia di elementi quando databound a un ObservableCollection? Esistono implementazioni di tipo AddRange che consiglieresti? È l'unica scelta che ho qui per eseguire questo su un thread in background che sembra costoso perché non sto caricando i dati da un database?
Vedere questo http://stackoverflow.com/questions/1007691/observablecollection-databinding-performance – Sauron